summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorPetri Gynther <pgynther@google.com>2009-08-20 02:21:27 -0700
committerDavid S. Miller <davem@davemloft.net>2009-08-20 02:21:27 -0700
commitd3b325f9c25be6d504bc73afce7f92d0e25001d7 (patch)
treef98e2f0194b0ff34d590daa266575d276a9758e6 /drivers
parentcbb35f8a2858f7e0fff5df598cb286c4bcae5976 (diff)
downloadlinux-3.10-d3b325f9c25be6d504bc73afce7f92d0e25001d7.tar.gz
linux-3.10-d3b325f9c25be6d504bc73afce7f92d0e25001d7.tar.bz2
linux-3.10-d3b325f9c25be6d504bc73afce7f92d0e25001d7.zip
ibm_newemac: emac_close() needs to call netif_carrier_off()
When ibm_newemac netdev instance is shutdown with "ifconfig down", the netdev interface does not go properly down. netif_carrier_ok() keeps returning TRUE even after "ifconfig down". The problem can be seen when ibm_newemac instances are slaves of a bonding interface. The bonding interface code uses netif_carrier_ok() to determine the link status of its slaves. When ibm_newemac slave is shutdown with "ifconfig down", the bonding interface won't detect any link status change because netif_carrier_ok() keeps returning TRUE. Signed-off-by: Petri Gynther <pgynther@google.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/net/ibm_newemac/core.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/net/ibm_newemac/core.c b/drivers/net/ibm_newemac/core.c
index beb84213b67..f0f89080371 100644
--- a/drivers/net/ibm_newemac/core.c
+++ b/drivers/net/ibm_newemac/core.c
@@ -1305,6 +1305,8 @@ static int emac_close(struct net_device *ndev)
free_irq(dev->emac_irq, dev);
+ netif_carrier_off(ndev);
+
return 0;
}