Skip to content

Commit

Permalink
[PATCH] lockdep: annotate vlan net device as being a special class
Browse files Browse the repository at this point in the history
vlan network devices have devices nesting below it, and are a special
"super class" of normal network devices; split their locks off into a
separate class since they always nest.

[deweerdt@free.fr: fix possible null-pointer deref]
Signed-off-by: Arjan van de Ven <arjan@linux.intel.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Frederik Deweerdt <frederik.deweerdt@gmail.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
  • Loading branch information
Arjan van de Ven authored and Linus Torvalds committed Jul 3, 2006
1 parent 663d440 commit 5dd8d1e
Showing 1 changed file with 11 additions and 0 deletions.
11 changes: 11 additions & 0 deletions net/8021q/vlan.c
Original file line number Diff line number Diff line change
Expand Up @@ -364,6 +364,14 @@ static void vlan_transfer_operstate(const struct net_device *dev, struct net_dev
}
}

/*
* vlan network devices have devices nesting below it, and are a special
* "super class" of normal network devices; split their locks off into a
* separate class since they always nest.
*/
static struct lock_class_key vlan_netdev_xmit_lock_key;


/* Attach a VLAN device to a mac address (ie Ethernet Card).
* Returns the device that was created, or NULL if there was
* an error of some kind.
Expand Down Expand Up @@ -460,6 +468,7 @@ static struct net_device *register_vlan_device(const char *eth_IF_name,

new_dev = alloc_netdev(sizeof(struct vlan_dev_info), name,
vlan_setup);

if (new_dev == NULL)
goto out_unlock;

Expand Down Expand Up @@ -518,6 +527,8 @@ static struct net_device *register_vlan_device(const char *eth_IF_name,
if (register_netdevice(new_dev))
goto out_free_newdev;

lockdep_set_class(&new_dev->_xmit_lock, &vlan_netdev_xmit_lock_key);

new_dev->iflink = real_dev->ifindex;
vlan_transfer_operstate(real_dev, new_dev);
linkwatch_fire_event(new_dev); /* _MUST_ call rfc2863_policy() */
Expand Down

0 comments on commit 5dd8d1e

Please sign in to comment.