Browse Source

device: look up full device name before traversing vlan chain

The user may have configured a VLAN device with explicit settings and the same
name by adding a config device section

Signed-off-by: Felix Fietkau <nbd@nbd.name>
Felix Fietkau 3 years ago
parent
commit
ac0710b7a3
1 changed files with 3 additions and 2 deletions
  1. 3 2
      device.c

+ 3 - 2
device.c

@@ -572,13 +572,14 @@ device_get(const char *name, int create)
 {
 	struct device *dev;
 
-	if (strchr(name, '.'))
+	dev = avl_find_element(&devices, name, dev, avl);
+
+	if (!dev && strchr(name, '.'))
 		return get_vlan_device_chain(name, create);
 
 	if (name[0] == '@')
 		return device_alias_get(name + 1);
 
-	dev = avl_find_element(&devices, name, dev, avl);
 	if (dev) {
 		if (create > 1 && !dev->external) {
 			system_if_apply_settings(dev, &dev->settings, dev->settings.flags);