cxgb3: FIx VLAN over Jumbo frames
authorDivy Le Ray <divy@chelsio.com>
Sat, 13 Feb 2010 09:44:30 +0000 (09:44 +0000)
committerDavid S. Miller <davem@davemloft.net>
Tue, 16 Feb 2010 05:49:48 +0000 (21:49 -0800)
The mac is expected to auto-inflate the Maximum Frame size for VLAN
tagged frames. It however does not work with jumbo frames.
Work around the bug adding 4 to the Maximum Frame for MTUs
greater than 1536.

Signed-off-by: Divy Le Ray <divy@chelsio.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/cxgb3/xgmac.c

index 0109ee4f2f9127fe2916123b557990704052484e..0c08de5d09fd3556519d8c75bf6837a80d5c0c84 100644 (file)
@@ -353,6 +353,9 @@ int t3_mac_set_mtu(struct cmac *mac, unsigned int mtu)
         * packet size register includes header, but not FCS.
         */
        mtu += 14;
+       if (mtu > 1536)
+               mtu += 4;
+
        if (mtu > MAX_FRAME_SIZE - 4)
                return -EINVAL;
        t3_write_reg(adap, A_XGM_RX_MAX_PKT_SIZE + mac->offset, mtu);