Lancer HW cannot handle a TSO packet with a single segment.
Disable TSO/GSO for such packets.

Signed-off-by: Suresh Reddy <suresh.re...@broadcom.com>
---
 drivers/net/ethernet/emulex/benet/be_main.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/drivers/net/ethernet/emulex/benet/be_main.c 
b/drivers/net/ethernet/emulex/benet/be_main.c
index c6e859a..130fa82 100644
--- a/drivers/net/ethernet/emulex/benet/be_main.c
+++ b/drivers/net/ethernet/emulex/benet/be_main.c
@@ -5097,9 +5097,12 @@ static netdev_features_t be_features_check(struct 
sk_buff *skb,
                        features &= ~NETIF_F_TSO6;
 
                /* Lancer cannot handle the packet with MSS less than 256.
+                * Also it can't handle a TSO packet with a single segment
                 * Disable the GSO support in such cases
                 */
-               if (lancer_chip(adapter) && skb_shinfo(skb)->gso_size < 256)
+               if (lancer_chip(adapter) &&
+                   (skb_shinfo(skb)->gso_size < 256 ||
+                    skb_shinfo(skb)->gso_segs == 1))
                        features &= ~NETIF_F_GSO_MASK;
        }
 
-- 
1.8.3.1

Reply via email to