net: Fix too optimistic NETIF_F_HW_CSUM features
NETIF_F_HW_CSUM is a superset of NETIF_F_IP_CSUM+NETIF_F_IPV6_CSUM, but some drivers miss the difference. Fix this and also fix UFO dependency on checksumming offload as it makes the same mistake in assumptions. Signed-off-by: Michał Mirosław <mirq-linux@rere.qmqm.pl> Acked-by: Jon Mason <jon.mason@exar.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:

committed by
David S. Miller

parent
900d495a18
commit
7903264402
@@ -1171,7 +1171,9 @@ static int ethtool_set_ufo(struct net_device *dev, char __user *useraddr)
|
||||
return -EFAULT;
|
||||
if (edata.data && !(dev->features & NETIF_F_SG))
|
||||
return -EINVAL;
|
||||
if (edata.data && !(dev->features & NETIF_F_HW_CSUM))
|
||||
if (edata.data && !((dev->features & NETIF_F_GEN_CSUM) ||
|
||||
(dev->features & (NETIF_F_IP_CSUM|NETIF_F_IPV6_CSUM))
|
||||
== (NETIF_F_IP_CSUM|NETIF_F_IPV6_CSUM)))
|
||||
return -EINVAL;
|
||||
return dev->ethtool_ops->set_ufo(dev, edata.data);
|
||||
}
|
||||
|
Reference in New Issue
Block a user