Sridhar Samudrala wrote:
I think the check for hw type is missing in e1000_set_tso()
before enabling ipv6 TSO.

e1000_probe() makes sure that NETIF_F_TSO6 is set only if
hw.mac_type > e1000_82547_rev_2. But this is not done in
e1000_set_tso() that gets called when trying to enable TSO
using ethtool.

I noticed this problem when i tried to do an ipv6 netperf
test with TSO enabled on 82541 based e1000 card.

The following patch adds this check to e1000_set_tso()


that looks indeed like an oversight. I'll make sure this is verified and will include this patch in my upstream submission to the kernel maintainer if it checks out,

thanks for posting!

Auke



Thanks
Sridhar

Signed-off-by: Sridhar Samudrala <[EMAIL PROTECTED]>

diff --git a/drivers/net/e1000/e1000_ethtool.c 
b/drivers/net/e1000/e1000_ethtool.c
--- a/drivers/net/e1000/e1000_ethtool.c
+++ b/drivers/net/e1000/e1000_ethtool.c
@@ -351,10 +351,12 @@ e1000_set_tso(struct net_device *netdev, uint32_t data)
        else
                netdev->features &= ~NETIF_F_TSO;
- if (data)
-               netdev->features |= NETIF_F_TSO6;
-       else
-               netdev->features &= ~NETIF_F_TSO6;
+       if (adapter->hw.mac_type > e1000_82547_rev_2) {
+               if (data)
+                       netdev->features |= NETIF_F_TSO6;
+               else
+                       netdev->features &= ~NETIF_F_TSO6;
+       }
DPRINTK(PROBE, INFO, "TSO is %s\n", data ? "Enabled" : "Disabled");
        adapter->tso_force = TRUE;

-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to