Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 90747
b: refs/heads/master
c: a9fde26
h: refs/heads/master
i:
  90745: d2bc6bb
  90743: 7051f58
v: v3
  • Loading branch information
Pavel Emelyanov authored and David S. Miller committed Apr 16, 2008
1 parent 95815e4 commit 5816ae3
Show file tree
Hide file tree
Showing 3 changed files with 15 additions and 13 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 669f87baab90183e13b95480aecf8d7bac92ca3c
refs/heads/master: a9fde2607895667823e9d1172fc193087125ef68
4 changes: 3 additions & 1 deletion trunk/include/linux/if_vlan.h
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,9 @@ extern void vlan_ioctl_set(int (*hook)(struct net *, void __user *));
#define VLAN_GROUP_ARRAY_PART_LEN (VLAN_GROUP_ARRAY_LEN/VLAN_GROUP_ARRAY_SPLIT_PARTS)

struct vlan_group {
int real_dev_ifindex; /* The ifindex of the ethernet(like) device the vlan is attached to. */
struct net_device *real_dev; /* The ethernet(like) device
* the vlan is attached to.
*/
unsigned int nr_vlans;
struct hlist_node hlist; /* linked list */
struct net_device **vlan_devices_arrays[VLAN_GROUP_ARRAY_SPLIT_PARTS];
Expand Down
22 changes: 11 additions & 11 deletions trunk/net/8021q/vlan.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}

Expand All @@ -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);
Expand All @@ -103,17 +103,17 @@ 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;

grp = kzalloc(sizeof(struct vlan_group), GFP_KERNEL);
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;
}

Expand Down Expand Up @@ -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);
Expand Down Expand Up @@ -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;
}
Expand Down Expand Up @@ -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;

Expand Down

0 comments on commit 5816ae3

Please sign in to comment.