ixgb: fix TX hangs under heavy load
Subsystems (2)
PATCH 1/1 ixgb: fix TX hangs under heavy load
A merge error occurred where we merged the wrong block here in version 1.0.120. The right condition for frags is slightly different then for the skb, so account for the difference properly and trim the TSO based size right.
Originally part of a fix reported by IBM to fix TSO hangs on pSeries hardware.
---
drivers/net/ixgb/ixgb_main.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-)
drivers/net/ixgb/ixgb_main.c +2 -2
@@ -1321,8 +1321,8 @@ ixgb_tx_map(struct ixgb_adapter *adapter, struct sk_buff *skb,/* Workaround for premature desc write-backs * in TSO mode. Append 4-byte sentinel desc */ -if (unlikely (mss && !nr_frags && size == len - && size >8 )) +if (unlikely (mss && (f == (nr_frags -1 )) + && size == len && size >8 )) size -=4 ; buffer_info->length = size;
Jeff Garzik
Applieddrivers/net/ixgb/ixgb_main.c
Quoted 17 lines · Auke Kok
A merge error occurred where we merged the wrong block here in version 1.0.120. The right condition for frags is slightly different then for the skb, so account for the difference properly and trim the TSO based size right.
Originally part of a fix reported by IBM to fix TSO hangs on pSeries hardware.
Signed-off-by Jesse Brandeburg <[email protected]>Signed-off-by Auke Kok <[email protected]>Cc Andy Gospodarek <[email protected]>---
drivers/net/ixgb/ixgb_main.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-)drivers/net/ixgb/ixgb_main.c +0
-0
applied
Quoted 5 lines · Auke Kok
A merge error occurred where we merged the wrong block here in version 1.0.120. The right condition for frags is slightly different then for the skb, so account for the difference properly and trim the TSO based size right.
Quoted 8 lines
Originally part of a fix reported by IBM to fix TSO hangs on pSeries hardware.
Signed-off-by Jesse Brandeburg <[email protected]>Signed-off-by Auke Kok <[email protected]>Cc Andy Gospodarek <[email protected]>---
Thanks, Auke and Jesse!