Message ID | 1284624663.3352.9.camel@edumazet-laptop |
---|---|
State | Accepted, archived |
Delegated to: | David Miller |
Headers | show |
From: Eric Dumazet <eric.dumazet@gmail.com> Date: Thu, 16 Sep 2010 10:11:03 +0200 > [PATCH] ethtool: change ethtool_set_gro() to use ethtool_op_get_rx_csum > > To be able to switch on GRO on a device, ethtool_set_gro() checks this > device provides a get_rx_csum() method. > > Some devices dont provide this method, while they do support RX > checksumming. > > This patch allows bonding to support GRO : > > ethtool -K bond0 gro on > > Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com> Applied, thanks Eric. Can you do whatever change is needed to get it enabled by default? Thanks again. -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/net/core/ethtool.c b/net/core/ethtool.c index 7a85367..8c8c6d4 100644 --- a/net/core/ethtool.c +++ b/net/core/ethtool.c @@ -1175,8 +1175,11 @@ static int ethtool_set_gro(struct net_device *dev, char __user *useraddr) return -EFAULT; if (edata.data) { - if (!dev->ethtool_ops->get_rx_csum || - !dev->ethtool_ops->get_rx_csum(dev)) + u32 rxcsum = dev->ethtool_ops->get_rx_csum ? + dev->ethtool_ops->get_rx_csum(dev) : + ethtool_op_get_rx_csum(dev); + + if (!rxcsum) return -EINVAL; dev->features |= NETIF_F_GRO; } else