diff options
| author | Trond Myklebust <Trond.Myklebust@netapp.com> | 2006-07-05 13:13:03 -0400 | 
|---|---|---|
| committer | Trond Myklebust <Trond.Myklebust@netapp.com> | 2006-07-05 13:13:03 -0400 | 
| commit | 5e66dd6d66ffe758b39b6dcadf2330753ee1159b (patch) | |
| tree | a72cdcff4448e4af9425cc213ddf56ab23e697fe /net/8021q/vlan.c | |
| parent | 026477c1141b67e98e3bd8bdedb7d4b88a3ecd09 (diff) | |
| parent | ca78f6baca863afe2e6a244a0fe94b3a70211d46 (diff) | |
Merge branch 'master' of /home/trondmy/kernel/linux-2.6/
Diffstat (limited to 'net/8021q/vlan.c')
| -rw-r--r-- | net/8021q/vlan.c | 11 | 
1 files changed, 11 insertions, 0 deletions
| diff --git a/net/8021q/vlan.c b/net/8021q/vlan.c index 3948949a609a..458031bfff55 100644 --- a/net/8021q/vlan.c +++ b/net/8021q/vlan.c | |||
| @@ -364,6 +364,14 @@ static void vlan_transfer_operstate(const struct net_device *dev, struct net_dev | |||
| 364 | } | 364 | } | 
| 365 | } | 365 | } | 
| 366 | 366 | ||
| 367 | /* | ||
| 368 | * vlan network devices have devices nesting below it, and are a special | ||
| 369 | * "super class" of normal network devices; split their locks off into a | ||
| 370 | * separate class since they always nest. | ||
| 371 | */ | ||
| 372 | static struct lock_class_key vlan_netdev_xmit_lock_key; | ||
| 373 | |||
| 374 | |||
| 367 | /* Attach a VLAN device to a mac address (ie Ethernet Card). | 375 | /* Attach a VLAN device to a mac address (ie Ethernet Card). | 
| 368 | * Returns the device that was created, or NULL if there was | 376 | * Returns the device that was created, or NULL if there was | 
| 369 | * an error of some kind. | 377 | * an error of some kind. | 
| @@ -460,6 +468,7 @@ static struct net_device *register_vlan_device(const char *eth_IF_name, | |||
| 460 | 468 | ||
| 461 | new_dev = alloc_netdev(sizeof(struct vlan_dev_info), name, | 469 | new_dev = alloc_netdev(sizeof(struct vlan_dev_info), name, | 
| 462 | vlan_setup); | 470 | vlan_setup); | 
| 471 | |||
| 463 | if (new_dev == NULL) | 472 | if (new_dev == NULL) | 
| 464 | goto out_unlock; | 473 | goto out_unlock; | 
| 465 | 474 | ||
| @@ -518,6 +527,8 @@ static struct net_device *register_vlan_device(const char *eth_IF_name, | |||
| 518 | if (register_netdevice(new_dev)) | 527 | if (register_netdevice(new_dev)) | 
| 519 | goto out_free_newdev; | 528 | goto out_free_newdev; | 
| 520 | 529 | ||
| 530 | lockdep_set_class(&new_dev->_xmit_lock, &vlan_netdev_xmit_lock_key); | ||
| 531 | |||
| 521 | new_dev->iflink = real_dev->ifindex; | 532 | new_dev->iflink = real_dev->ifindex; | 
| 522 | vlan_transfer_operstate(real_dev, new_dev); | 533 | vlan_transfer_operstate(real_dev, new_dev); | 
| 523 | linkwatch_fire_event(new_dev); /* _MUST_ call rfc2863_policy() */ | 534 | linkwatch_fire_event(new_dev); /* _MUST_ call rfc2863_policy() */ | 
