diff options
Diffstat (limited to 'net/8021q/vlan.c')
| -rw-r--r-- | net/8021q/vlan.c | 11 |
1 files changed, 4 insertions, 7 deletions
diff --git a/net/8021q/vlan.c b/net/8021q/vlan.c index 458031bfff55..18fcb9fa518d 100644 --- a/net/8021q/vlan.c +++ b/net/8021q/vlan.c | |||
| @@ -67,10 +67,6 @@ static struct packet_type vlan_packet_type = { | |||
| 67 | .func = vlan_skb_recv, /* VLAN receive method */ | 67 | .func = vlan_skb_recv, /* VLAN receive method */ |
| 68 | }; | 68 | }; |
| 69 | 69 | ||
| 70 | /* Bits of netdev state that are propagated from real device to virtual */ | ||
| 71 | #define VLAN_LINK_STATE_MASK \ | ||
| 72 | ((1<<__LINK_STATE_PRESENT)|(1<<__LINK_STATE_NOCARRIER)|(1<<__LINK_STATE_DORMANT)) | ||
| 73 | |||
| 74 | /* End of global variables definitions. */ | 70 | /* End of global variables definitions. */ |
| 75 | 71 | ||
| 76 | /* | 72 | /* |
| @@ -479,7 +475,9 @@ static struct net_device *register_vlan_device(const char *eth_IF_name, | |||
| 479 | new_dev->flags = real_dev->flags; | 475 | new_dev->flags = real_dev->flags; |
| 480 | new_dev->flags &= ~IFF_UP; | 476 | new_dev->flags &= ~IFF_UP; |
| 481 | 477 | ||
| 482 | new_dev->state = real_dev->state & ~(1<<__LINK_STATE_START); | 478 | new_dev->state = (real_dev->state & ((1<<__LINK_STATE_NOCARRIER) | |
| 479 | (1<<__LINK_STATE_DORMANT))) | | ||
| 480 | (1<<__LINK_STATE_PRESENT); | ||
| 483 | 481 | ||
| 484 | /* need 4 bytes for extra VLAN header info, | 482 | /* need 4 bytes for extra VLAN header info, |
| 485 | * hope the underlying device can handle it. | 483 | * hope the underlying device can handle it. |
| @@ -542,12 +540,11 @@ static struct net_device *register_vlan_device(const char *eth_IF_name, | |||
| 542 | * so it cannot "appear" on us. | 540 | * so it cannot "appear" on us. |
| 543 | */ | 541 | */ |
| 544 | if (!grp) { /* need to add a new group */ | 542 | if (!grp) { /* need to add a new group */ |
| 545 | grp = kmalloc(sizeof(struct vlan_group), GFP_KERNEL); | 543 | grp = kzalloc(sizeof(struct vlan_group), GFP_KERNEL); |
| 546 | if (!grp) | 544 | if (!grp) |
| 547 | goto out_free_unregister; | 545 | goto out_free_unregister; |
| 548 | 546 | ||
| 549 | /* printk(KERN_ALERT "VLAN REGISTER: Allocated new group.\n"); */ | 547 | /* printk(KERN_ALERT "VLAN REGISTER: Allocated new group.\n"); */ |
| 550 | memset(grp, 0, sizeof(struct vlan_group)); | ||
| 551 | grp->real_dev_ifindex = real_dev->ifindex; | 548 | grp->real_dev_ifindex = real_dev->ifindex; |
| 552 | 549 | ||
| 553 | hlist_add_head_rcu(&grp->hlist, | 550 | hlist_add_head_rcu(&grp->hlist, |
