bnxt_en: Poll link at the end of __bnxt_open_nic().
authorMichael Chan <mchan@broadcom.com>
Sat, 20 Feb 2016 00:43:19 +0000 (19:43 -0500)
committerDavid S. Miller <davem@davemloft.net>
Sat, 20 Feb 2016 04:39:32 +0000 (23:39 -0500)
When shutting down the NIC, we shutdown async event processing before
freeing all the rings.  If there is a link change event during reset, the
driver may miss it and the link state may be incorrect after the NIC is
re-opened.  Poll the link at the end of __bnxt_open_nic() to get the
correct link status.

Signed-off-by Michael Chan <michael.chan@broadcom.com>

Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/broadcom/bnxt/bnxt.c

index 82f4e6d9ac7f7efcabcd15def594f053259581a2..9b560582c7e6e8153b2f1976d7d767fc5af7f703 100644 (file)
@@ -4662,6 +4662,7 @@ static int __bnxt_open_nic(struct bnxt *bp, bool irq_re_init, bool link_re_init)
        /* Enable TX queues */
        bnxt_tx_enable(bp);
        mod_timer(&bp->timer, jiffies + bp->current_interval);
+       bnxt_update_link(bp, true);
 
        return 0;