Message ID | 1460077584-20824-1-git-send-email-dbanerje@akamai.com |
---|---|
State | Deferred, archived |
Delegated to: | David Miller |
Headers | show |
diff --git a/drivers/net/macvlan.c b/drivers/net/macvlan.c index 2bcf1f3..16d0e56 100644 --- a/drivers/net/macvlan.c +++ b/drivers/net/macvlan.c @@ -1525,10 +1525,14 @@ static int macvlan_device_event(struct notifier_block *unused, switch (event) { case NETDEV_UP: + case NETDEV_DOWN: case NETDEV_CHANGE: - list_for_each_entry(vlan, &port->vlans, list) + list_for_each_entry(vlan, &port->vlans, list) { netif_stacked_transfer_operstate(vlan->lowerdev, vlan->dev); + if (!(vlan->lowerdev->flags & IFF_UP)) + netif_carrier_off(vlan->dev); + } break; case NETDEV_FEAT_CHANGE: list_for_each_entry(vlan, &port->vlans, list) {
When the lowerdev is set administratively down disable carrier on the macvlan interface. This means operstate gets set properly instead of still being "up". Signed-off-by: Debabrata Banerjee <dbanerje@akamai.com> --- drivers/net/macvlan.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-)