X-Git-Url: http://git.archive.openwrt.org/?p=project%2Fnetifd.git;a=blobdiff_plain;f=vlan.c;h=f70420a257f71b77d5b6e95b1051a2a9a01b300a;hp=ee0652fb476ffc6542280f1c5eefbe26ea187b66;hb=45e9c1a9a4df8580a9c1117c225d5e9ec73694c4;hpb=6094417533d97662f693d134ab04595a292de30c diff --git a/vlan.c b/vlan.c index ee0652f..f70420a 100644 --- a/vlan.c +++ b/vlan.c @@ -99,7 +99,7 @@ static struct device *get_vlan_device(struct device *dev, int id, bool create) struct device_user *dep; /* look for an existing interface before creating a new one */ - list_for_each_entry(dep, &dev->users, list) { + list_for_each_entry(dep, &dev->users.list, list.list) { if (dep->cb != vlan_dev_cb) continue; @@ -115,15 +115,15 @@ static struct device *get_vlan_device(struct device *dev, int id, bool create) vldev = calloc(1, sizeof(*vldev)); + vldev->id = id; + vlan_dev_set_name(vldev, dev); + device_init_virtual(&vldev->dev, &vlan_type, NULL); vldev->dev.default_config = true; vldev->set_state = vldev->dev.set_state; vldev->dev.set_state = vlan_set_device_state; - vldev->id = id; - vlan_dev_set_name(vldev, dev); - vldev->dep.cb = vlan_dev_cb; device_add_user(&vldev->dep, dev);