forked from luck/tmp_suning_uos_patched
[BNX2]: Fix link interrupt problem.
bnx2_has_work()'s logic is flawed and can cause the driver to miss a link event. The fix is to compare the status block's attn_bits and attn_bits_ack to determine if there is a link event. Update version to 1.5.6. Signed-off-by: Michael Chan <mchan@broadcom.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
190a4408ec
commit
db8b22550d
@ -54,8 +54,8 @@
|
||||
|
||||
#define DRV_MODULE_NAME "bnx2"
|
||||
#define PFX DRV_MODULE_NAME ": "
|
||||
#define DRV_MODULE_VERSION "1.5.5"
|
||||
#define DRV_MODULE_RELDATE "February 1, 2007"
|
||||
#define DRV_MODULE_VERSION "1.5.6"
|
||||
#define DRV_MODULE_RELDATE "March 28, 2007"
|
||||
|
||||
#define RUN_AT(x) (jiffies + (x))
|
||||
|
||||
@ -2033,8 +2033,8 @@ bnx2_has_work(struct bnx2 *bp)
|
||||
(sblk->status_tx_quick_consumer_index0 != bp->hw_tx_cons))
|
||||
return 1;
|
||||
|
||||
if (((sblk->status_attn_bits & STATUS_ATTN_BITS_LINK_STATE) != 0) !=
|
||||
bp->link_up)
|
||||
if ((sblk->status_attn_bits & STATUS_ATTN_BITS_LINK_STATE) !=
|
||||
(sblk->status_attn_bits_ack & STATUS_ATTN_BITS_LINK_STATE))
|
||||
return 1;
|
||||
|
||||
return 0;
|
||||
|
Loading…
Reference in New Issue
Block a user