bonding: Have bond_check_dev_link examine netif_running
authorPetri Gynther <pgynther@google.com>
Fri, 28 Aug 2009 12:05:15 +0000 (12:05 +0000)
committerDavid S. Miller <davem@davemloft.net>
Sat, 29 Aug 2009 06:01:20 +0000 (23:01 -0700)
bonding: Have bond_check_dev_link examine netif_running

Some network devices do not call netif_carrier_off when they
are set administratively down.  Have the bonding link check function
also inspect the netif_running state.  Ignore netif_running if the
bond_check_dev_link function is called with "reporting" set, as in that
case it's inspecting the capabilities of the non-netif_carrier device
driver.

Signed-off-by: Petri Gynther <pgynther@google.com>
Signed-off-by: Jay Vosburgh <fubar@us.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/bonding/bond_main.c

index 6b9f15b32a38d4f592cd309febc0eeff9692e622..7c0e0bded15e46cd1aff34e05077a60599efd9f0 100644 (file)
@@ -695,6 +695,9 @@ static int bond_check_dev_link(struct bonding *bond,
        struct ifreq ifr;
        struct mii_ioctl_data *mii;
 
+       if (!reporting && !netif_running(slave_dev))
+               return 0;
+
        if (bond->params.use_carrier)
                return netif_carrier_ok(slave_dev) ? BMSR_LSTATUS : 0;