Commit db8b2255 authored by Michael Chan's avatar Michael Chan Committed by David S. Miller

[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: default avatarMichael Chan <mchan@broadcom.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 190a4408
...@@ -54,8 +54,8 @@ ...@@ -54,8 +54,8 @@
#define DRV_MODULE_NAME "bnx2" #define DRV_MODULE_NAME "bnx2"
#define PFX DRV_MODULE_NAME ": " #define PFX DRV_MODULE_NAME ": "
#define DRV_MODULE_VERSION "1.5.5" #define DRV_MODULE_VERSION "1.5.6"
#define DRV_MODULE_RELDATE "February 1, 2007" #define DRV_MODULE_RELDATE "March 28, 2007"
#define RUN_AT(x) (jiffies + (x)) #define RUN_AT(x) (jiffies + (x))
...@@ -2033,8 +2033,8 @@ bnx2_has_work(struct bnx2 *bp) ...@@ -2033,8 +2033,8 @@ bnx2_has_work(struct bnx2 *bp)
(sblk->status_tx_quick_consumer_index0 != bp->hw_tx_cons)) (sblk->status_tx_quick_consumer_index0 != bp->hw_tx_cons))
return 1; return 1;
if (((sblk->status_attn_bits & STATUS_ATTN_BITS_LINK_STATE) != 0) != if ((sblk->status_attn_bits & STATUS_ATTN_BITS_LINK_STATE) !=
bp->link_up) (sblk->status_attn_bits_ack & STATUS_ATTN_BITS_LINK_STATE))
return 1; return 1;
return 0; return 0;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment