diff options
Diffstat (limited to 'net')
-rw-r--r-- | net/8021q/vlan.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/net/8021q/vlan.c b/net/8021q/vlan.c index 1f6d31670bc7..91e412b0ab00 100644 --- a/net/8021q/vlan.c +++ b/net/8021q/vlan.c | |||
@@ -578,6 +578,14 @@ static int vlan_device_event(struct notifier_block *unused, unsigned long event, | |||
578 | if (!vlandev) | 578 | if (!vlandev) |
579 | continue; | 579 | continue; |
580 | 580 | ||
581 | if (netif_carrier_ok(dev)) { | ||
582 | if (!netif_carrier_ok(vlandev)) | ||
583 | netif_carrier_on(vlandev); | ||
584 | } else { | ||
585 | if (netif_carrier_ok(vlandev)) | ||
586 | netif_carrier_off(vlandev); | ||
587 | } | ||
588 | |||
581 | if ((vlandev->state & VLAN_LINK_STATE_MASK) != flgs) { | 589 | if ((vlandev->state & VLAN_LINK_STATE_MASK) != flgs) { |
582 | vlandev->state = (vlandev->state &~ VLAN_LINK_STATE_MASK) | 590 | vlandev->state = (vlandev->state &~ VLAN_LINK_STATE_MASK) |
583 | | flgs; | 591 | | flgs; |