tg3: Fix UDP fragments treated as RMCP
authorNithin Sujir <nsujir@broadcom.com>
Mon, 29 Jul 2013 20:58:39 +0000 (13:58 -0700)
committerDavid S. Miller <davem@davemloft.net>
Tue, 30 Jul 2013 06:38:52 +0000 (23:38 -0700)
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>
drivers/net/ethernet/broadcom/tg3.c
drivers/net/ethernet/broadcom/tg3.h

index f077c8f5baa18f4c235567edef2b4736c931f3be..6e59ef1ba13eec50a298ad00bbb3b99a1b60e115 100644 (file)
@@ -10420,6 +10420,9 @@ static int tg3_reset_hw(struct tg3 *tp, bool reset_phy)
        if (tg3_flag(tp, 5755_PLUS))
                tp->rx_mode |= RX_MODE_IPV6_CSUM_ENABLE;
 
+       if (tg3_asic_rev(tp) == ASIC_REV_5762)
+               tp->rx_mode |= RX_MODE_IPV4_FRAG_FIX;
+
        if (tg3_flag(tp, ENABLE_RSS))
                tp->rx_mode |= RX_MODE_RSS_ENABLE |
                               RX_MODE_RSS_ITBL_HASH_BITS_7 |
index 2e0f3d34ea5d556f0429d016c008de2be95e9a0b..ddb8be1298eab2b66eac319a4abce91a72da8896 100644 (file)
 #define  RX_MODE_RSS_ITBL_HASH_BITS_7   0x00700000
 #define  RX_MODE_RSS_ENABLE             0x00800000
 #define  RX_MODE_IPV6_CSUM_ENABLE       0x01000000
+#define  RX_MODE_IPV4_FRAG_FIX          0x02000000
 #define MAC_RX_STATUS                  0x0000046c
 #define  RX_STATUS_REMOTE_TX_XOFFED     0x00000001
 #define  RX_STATUS_XOFF_RCVD            0x00000002