|
@@ -65,14 +65,14 @@ static inline unsigned int vlan_grp_hashfn(unsigned int idx)
|
|
|
}
|
|
|
|
|
|
/* Must be invoked with RCU read lock (no preempt) */
|
|
|
-static struct vlan_group *__vlan_find_group(int real_dev_ifindex)
|
|
|
+static struct vlan_group *__vlan_find_group(struct net_device *real_dev)
|
|
|
{
|
|
|
struct vlan_group *grp;
|
|
|
struct hlist_node *n;
|
|
|
- int hash = vlan_grp_hashfn(real_dev_ifindex);
|
|
|
+ int hash = vlan_grp_hashfn(real_dev->ifindex);
|
|
|
|
|
|
hlist_for_each_entry_rcu(grp, n, &vlan_group_hash[hash], hlist) {
|
|
|
- if (grp->real_dev_ifindex == real_dev_ifindex)
|
|
|
+ if (grp->real_dev == real_dev)
|
|
|
return grp;
|
|
|
}
|
|
|
|
|
@@ -86,7 +86,7 @@ static struct vlan_group *__vlan_find_group(int real_dev_ifindex)
|
|
|
struct net_device *__find_vlan_dev(struct net_device *real_dev,
|
|
|
unsigned short VID)
|
|
|
{
|
|
|
- struct vlan_group *grp = __vlan_find_group(real_dev->ifindex);
|
|
|
+ struct vlan_group *grp = __vlan_find_group(real_dev);
|
|
|
|
|
|
if (grp)
|
|
|
return vlan_group_get_device(grp, VID);
|
|
@@ -103,7 +103,7 @@ static void vlan_group_free(struct vlan_group *grp)
|
|
|
kfree(grp);
|
|
|
}
|
|
|
|
|
|
-static struct vlan_group *vlan_group_alloc(int ifindex)
|
|
|
+static struct vlan_group *vlan_group_alloc(struct net_device *real_dev)
|
|
|
{
|
|
|
struct vlan_group *grp;
|
|
|
|
|
@@ -111,9 +111,9 @@ static struct vlan_group *vlan_group_alloc(int ifindex)
|
|
|
if (!grp)
|
|
|
return NULL;
|
|
|
|
|
|
- grp->real_dev_ifindex = ifindex;
|
|
|
+ grp->real_dev = real_dev;
|
|
|
hlist_add_head_rcu(&grp->hlist,
|
|
|
- &vlan_group_hash[vlan_grp_hashfn(ifindex)]);
|
|
|
+ &vlan_group_hash[vlan_grp_hashfn(real_dev->ifindex)]);
|
|
|
return grp;
|
|
|
}
|
|
|
|
|
@@ -151,7 +151,7 @@ void unregister_vlan_dev(struct net_device *dev)
|
|
|
|
|
|
ASSERT_RTNL();
|
|
|
|
|
|
- grp = __vlan_find_group(real_dev->ifindex);
|
|
|
+ grp = __vlan_find_group(real_dev);
|
|
|
BUG_ON(!grp);
|
|
|
|
|
|
vlan_proc_rem_dev(dev);
|
|
@@ -246,9 +246,9 @@ int register_vlan_dev(struct net_device *dev)
|
|
|
struct vlan_group *grp, *ngrp = NULL;
|
|
|
int err;
|
|
|
|
|
|
- grp = __vlan_find_group(real_dev->ifindex);
|
|
|
+ grp = __vlan_find_group(real_dev);
|
|
|
if (!grp) {
|
|
|
- ngrp = grp = vlan_group_alloc(real_dev->ifindex);
|
|
|
+ ngrp = grp = vlan_group_alloc(real_dev);
|
|
|
if (!grp)
|
|
|
return -ENOBUFS;
|
|
|
}
|
|
@@ -412,7 +412,7 @@ static int vlan_device_event(struct notifier_block *unused, unsigned long event,
|
|
|
goto out;
|
|
|
}
|
|
|
|
|
|
- grp = __vlan_find_group(dev->ifindex);
|
|
|
+ grp = __vlan_find_group(dev);
|
|
|
if (!grp)
|
|
|
goto out;
|
|
|
|