aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/tg3.h
diff options
context:
space:
mode:
authorMatt Carlson <mcarlson@broadcom.com>2011-06-13 09:38:55 -0400
committerDavid S. Miller <davem@conan.davemloft.net>2011-06-15 11:11:55 -0400
commit0e6cf6a9e3cf911577b1dde0dc724f634e4ca119 (patch)
tree8a974393bd1fba47688223f771d3035657d306c4 /drivers/net/tg3.h
parentb96368e9365a4db7429da87cfd25bb54b24954f8 (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.h3
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;