On Wed, 2016-01-20 at 17:16 +0530, skallam wrote:
From: Siva Reddy Kallam <siva.kallam@broadcom.com>
There is an issue on the GSO path inside tg3_tso_bug() when we don't
have sufficient descriptors available, we stop the queue. This queue
may never get started again as there are no Tx completions pending.
For example if the tcp segment size is as low as 88 bytes and TSO packet
from the stack is quite big(<64 K), gso_segs exceeds the limit of
descriptors available.
tg3_tso_bug_gso_check() is implemented to verify if the total no. of
descriptors available for gso are sufficient or not. If not sufficient
we simply linearize the the skb and transmit it once again or drop the
skb.
I find this changelog misleading.
linearize wont change gso_segs
You are in fact segmenting the GSO packet, which is very different than
linearizing it.