aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet
diff options
context:
space:
mode:
authorNithin Sujir <nsujir@broadcom.com>2013-07-29 16:58:39 -0400
committerDavid S. Miller <davem@davemloft.net>2013-07-30 02:38:52 -0400
commit378b72c873b4828cde5b4bc85c7029d98f8f1df4 (patch)
tree8a329c23cf5a0671b223372b29a6a6c115e72fe7 /drivers/net/ethernet
parent92e6457d4cf68ef69bc4f98330c93e198df06a43 (diff)
tg3: Fix UDP fragments treated as RMCP
The 5762 devices sometimes incorrectly treat udp fragments as RMCP packets and route to the APE. This patch sets the RX_MODE_IPV4_FRAG_FIX bit for these devices which enables the proper behaviour. Signed-off-by: Nithin Nayak Sujir <nsujir@broadcom.com> Signed-off-by: Michael Chan <mchan@broadcom.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet')
-rw-r--r--drivers/net/ethernet/broadcom/tg3.c3
-rw-r--r--drivers/net/ethernet/broadcom/tg3.h1
2 files changed, 4 insertions, 0 deletions
diff --git a/drivers/net/ethernet/broadcom/tg3.c b/drivers/net/ethernet/broadcom/tg3.c
index f077c8f5baa1..6e59ef1ba13e 100644
--- a/drivers/net/ethernet/broadcom/tg3.c
+++ b/drivers/net/ethernet/broadcom/tg3.c
@@ -10420,6 +10420,9 @@ static int tg3_reset_hw(struct tg3 *tp, bool reset_phy)
10420 if (tg3_flag(tp, 5755_PLUS)) 10420 if (tg3_flag(tp, 5755_PLUS))
10421 tp->rx_mode |= RX_MODE_IPV6_CSUM_ENABLE; 10421 tp->rx_mode |= RX_MODE_IPV6_CSUM_ENABLE;
10422 10422
10423 if (tg3_asic_rev(tp) == ASIC_REV_5762)
10424 tp->rx_mode |= RX_MODE_IPV4_FRAG_FIX;
10425
10423 if (tg3_flag(tp, ENABLE_RSS)) 10426 if (tg3_flag(tp, ENABLE_RSS))
10424 tp->rx_mode |= RX_MODE_RSS_ENABLE | 10427 tp->rx_mode |= RX_MODE_RSS_ENABLE |
10425 RX_MODE_RSS_ITBL_HASH_BITS_7 | 10428 RX_MODE_RSS_ITBL_HASH_BITS_7 |
diff --git a/drivers/net/ethernet/broadcom/tg3.h b/drivers/net/ethernet/broadcom/tg3.h
index 2e0f3d34ea5d..ddb8be1298ea 100644
--- a/drivers/net/ethernet/broadcom/tg3.h
+++ b/drivers/net/ethernet/broadcom/tg3.h
@@ -532,6 +532,7 @@
532#define RX_MODE_RSS_ITBL_HASH_BITS_7 0x00700000 532#define RX_MODE_RSS_ITBL_HASH_BITS_7 0x00700000
533#define RX_MODE_RSS_ENABLE 0x00800000 533#define RX_MODE_RSS_ENABLE 0x00800000
534#define RX_MODE_IPV6_CSUM_ENABLE 0x01000000 534#define RX_MODE_IPV6_CSUM_ENABLE 0x01000000
535#define RX_MODE_IPV4_FRAG_FIX 0x02000000
535#define MAC_RX_STATUS 0x0000046c 536#define MAC_RX_STATUS 0x0000046c
536#define RX_STATUS_REMOTE_TX_XOFFED 0x00000001 537#define RX_STATUS_REMOTE_TX_XOFFED 0x00000001
537#define RX_STATUS_XOFF_RCVD 0x00000002 538#define RX_STATUS_XOFF_RCVD 0x00000002