From: skallam <siva.kal...@broadcom.com> Date: Wed, 3 Feb 2016 14:09:38 +0530
> From: Siva Reddy Kallam <siva.kal...@broadcom.com> > > tg3_tso_bug() can hit a condition where the entire tx ring is not big > enough to segment the GSO packet. For example, if MSS is very small, > gso_segs can exceed the tx ring size. When we hit the condition, it > will cause tx timeout. > > tg3_tso_bug() is called to handle TSO and DMA hardware bugs. > For TSO bugs, if tg3_tso_bug() cannot succeed, we have to drop the packet. > For DMA bugs, we can still fall back to linearize the SKB and let the > hardware transmit the TSO packet. > > This patch adds a function tg3_tso_bug_gso_check() to check if there > are enough tx descriptors for GSO before calling tg3_tso_bug(). > The caller will then handle the error appropriately - drop or > lineraize the SKB. > > v2: Corrected patch description to avoid confusion. > > Signed-off-by: Siva Reddy Kallam <siva.kal...@broadcom.com> > Signed-off-by: Michael Chan <mc...@broadcom.com> > Acked-by: Prashant Sreedharan <prash...@broadcom.com> Applied and queued up for -stable. Thanks.