be2net: remove wrong and unnecessary calls to netif_carrier_off()
authorSathya Perla <sathya.perla@emulex.com>
Tue, 2 Aug 2011 19:57:41 +0000 (19:57 +0000)
committerDavid S. Miller <davem@davemloft.net>
Wed, 3 Aug 2011 10:23:29 +0000 (03:23 -0700)
1) In be_probe(), as soon as the MCC Q is created a gratuitous link status
event is received and processed. Accordingly netif_carrier_off/on() is called.
The extra netif_carrier_off() call in probe can race with this and cause wrong
state.

2) be_close() need not call netif_carrier_off(). It is OK to show the actual
link state even when the device is administratively down.

Signed-off-by: Sathya Perla <sathya.perla@emulex.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/benet/be_main.c

index 9f2f66c66be67872b319b55a1bb609ed3fe68d11..553cc0dc6c918c1e35b81f2abf166375cca88def 100644 (file)
@@ -2217,7 +2217,6 @@ static int be_close(struct net_device *netdev)
 
        be_async_mcc_disable(adapter);
 
-       netif_carrier_off(netdev);
        adapter->link_up = false;
 
        if (!lancer_chip(adapter))
@@ -3345,7 +3344,6 @@ static int __devinit be_probe(struct pci_dev *pdev,
        status = register_netdev(netdev);
        if (status != 0)
                goto unsetup;
-       netif_carrier_off(netdev);
 
        if (be_physfn(adapter) && adapter->sriov_enabled) {
                u8 mac_speed;