Skip to contentSkip to conversation

ixgb: fix TX hangs under heavy load

PATCH Applied Auke Kok 3 participants 3 messages Oct 30, 2007

Subsystems (2)
lore
Share & tools
lore

Auke Kok

author
#0 lore raw

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
index e564335..3021234 100644
@@ -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;
Applied
#1 lore raw

drivers/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.

---

 drivers/net/ixgb/ixgb_main.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)
drivers/net/ixgb/ixgb_main.c +0 -0

applied

#2 lore raw
In reply to Auke Kok
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.

---

Thanks, Auke and Jesse!