X-Git-Url: http://git.archive.openwrt.org/?a=blobdiff_plain;f=vlan.c;h=8e7141f9beed2fbe2af59a51fc9a578629dc37e0;hb=1dd3df775f0beb089d8ed6ba665ee93dd4997847;hp=28e561b61dd2aa5523ecff3466bb21e7ed022f34;hpb=3d317e90f15eec480b23f4dcddb841c292bef690;p=project%2Fnetifd.git diff --git a/vlan.c b/vlan.c index 28e561b..8e7141f 100644 --- a/vlan.c +++ b/vlan.c @@ -50,7 +50,7 @@ static int vlan_set_device_state(struct device *dev, bool up) } ret = device_claim(&vldev->dep); - if (ret) + if (ret < 0) return ret; system_vlan_add(vldev->dep.dev, vldev->id); @@ -79,11 +79,6 @@ static void vlan_dev_cb(struct device_user *dep, enum device_event ev) case DEV_EVENT_REMOVE: device_set_present(&vldev->dev, new_state); break; - case DEV_EVENT_LINK_UP: - new_state = true; - case DEV_EVENT_LINK_DOWN: - device_set_link(&vldev->dev, new_state); - break; case DEV_EVENT_UPDATE_IFNAME: vlan_dev_set_name(vldev, dep->dev); device_broadcast_event(&vldev->dev, ev); @@ -129,7 +124,7 @@ static struct device *get_vlan_device(struct device *dev, int id, bool create) vldev->id = id; vlan_dev_set_name(vldev, dev); - device_init_virtual(&vldev->dev, &vlan_type, NULL); + device_init(&vldev->dev, &vlan_type, vldev->dev.ifname); vldev->dev.default_config = true; vldev->set_state = vldev->dev.set_state;