2007-05-21 19:53:53

by Chris Wright

[permalink] [raw]
Subject: [patch 24/69] BNX2: Fix TSO problem with small MSS.

-stable review patch. If anyone has any objections, please let us know.
---------------------

From: <[email protected]>

Remove the check for skb->len greater than MTU when doing TSO. When
the destination has a smaller MSS than the source, a TSO packet may
be smaller than the MTU at the source and we still need to process it
as a TSO packet.

Thanks to Brian Ristuccia <[email protected]> for
reporting the problem.

Signed-off-by: Michael Chan <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
Signed-off-by: Chris Wright <[email protected]>

---
drivers/net/bnx2.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)

--- linux-2.6.21.1.orig/drivers/net/bnx2.c
+++ linux-2.6.21.1/drivers/net/bnx2.c
@@ -4510,8 +4510,7 @@ bnx2_start_xmit(struct sk_buff *skb, str
vlan_tag_flags |=
(TX_BD_FLAGS_VLAN_TAG | (vlan_tx_tag_get(skb) << 16));
}
- if ((mss = skb_shinfo(skb)->gso_size) &&
- (skb->len > (bp->dev->mtu + ETH_HLEN))) {
+ if ((mss = skb_shinfo(skb)->gso_size)) {
u32 tcp_opt_len, ip_tcp_len;

if (skb_header_cloned(skb) &&

--