diff options
author | Matt Carlson <mcarlson@broadcom.com> | 2011-06-13 09:38:55 -0400 |
---|---|---|
committer | David S. Miller <davem@conan.davemloft.net> | 2011-06-15 11:11:55 -0400 |
commit | 0e6cf6a9e3cf911577b1dde0dc724f634e4ca119 (patch) | |
tree | 8a974393bd1fba47688223f771d3035657d306c4 /drivers/net/tg3.h | |
parent | b96368e9365a4db7429da87cfd25bb54b24954f8 (diff) |
tg3: Workaround tagged status update bug
On rare occasions, writing the tag to the interrupt mailbox does not
reenable interrupts. This patch fixes the problem by reissuing the
mailbox update.
Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
Signed-off-by: Michael Chan <mchan@broadcom.com>
Reviewed-by: Benjamin Li <benli@broadcom.com>
Signed-off-by: David S. Miller <davem@conan.davemloft.net>
Diffstat (limited to 'drivers/net/tg3.h')
-rw-r--r-- | drivers/net/tg3.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/net/tg3.h b/drivers/net/tg3.h index 5b3d2f34da7a..3c113c1e9d35 100644 --- a/drivers/net/tg3.h +++ b/drivers/net/tg3.h | |||
@@ -2800,6 +2800,7 @@ struct tg3_napi { | |||
2800 | struct tg3 *tp; | 2800 | struct tg3 *tp; |
2801 | struct tg3_hw_status *hw_status; | 2801 | struct tg3_hw_status *hw_status; |
2802 | 2802 | ||
2803 | u32 chk_msi_cnt; | ||
2803 | u32 last_tag; | 2804 | u32 last_tag; |
2804 | u32 last_irq_tag; | 2805 | u32 last_irq_tag; |
2805 | u32 int_mbox; | 2806 | u32 int_mbox; |
@@ -2807,6 +2808,7 @@ struct tg3_napi { | |||
2807 | 2808 | ||
2808 | u32 consmbox ____cacheline_aligned; | 2809 | u32 consmbox ____cacheline_aligned; |
2809 | u32 rx_rcb_ptr; | 2810 | u32 rx_rcb_ptr; |
2811 | u32 last_rx_cons; | ||
2810 | u16 *rx_rcb_prod_idx; | 2812 | u16 *rx_rcb_prod_idx; |
2811 | struct tg3_rx_prodring_set prodring; | 2813 | struct tg3_rx_prodring_set prodring; |
2812 | struct tg3_rx_buffer_desc *rx_rcb; | 2814 | struct tg3_rx_buffer_desc *rx_rcb; |
@@ -2814,6 +2816,7 @@ struct tg3_napi { | |||
2814 | u32 tx_prod ____cacheline_aligned; | 2816 | u32 tx_prod ____cacheline_aligned; |
2815 | u32 tx_cons; | 2817 | u32 tx_cons; |
2816 | u32 tx_pending; | 2818 | u32 tx_pending; |
2819 | u32 last_tx_cons; | ||
2817 | u32 prodmbox; | 2820 | u32 prodmbox; |
2818 | struct tg3_tx_buffer_desc *tx_ring; | 2821 | struct tg3_tx_buffer_desc *tx_ring; |
2819 | struct ring_info *tx_buffers; | 2822 | struct ring_info *tx_buffers; |