• Michael Chan's avatar
    bnx2: Use netif_carrier_off() to prevent timeout. · a0ba6760
    Michael Chan authored
    Based on original patch from Stanislaw Gruszka <sgruszka@redhat.com>.
    
    Using netif_carrier_off() is better than updating all the ->trans_start
    on all the tx queues.
    
    netif_carrier_off() needs to be called after bnx2_disable_int_sync()
    to guarantee no race conditions with the serdes timers that can
    modify the carrier state.
    
    If the chip or phy is reset, carrier will turn back on when we get the
    link interrupt.  If there is no reset, we need to turn carrier back on
    in bnx2_netif_start().  Again, the phy_lock prevents race conditions with
    the serdes timers.
    Signed-off-by: default avatarMichael Chan <mchan@broadcom.com>
    Signed-off-by: default avatarMatt Carlson <mcarlson@broadcom.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    a0ba6760
bnx2.c 207 KB