diff options
| -rw-r--r-- | net/core/ethtool.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/net/core/ethtool.c b/net/core/ethtool.c index fcd62757704d..248c25c3e820 100644 --- a/net/core/ethtool.c +++ b/net/core/ethtool.c | |||
| @@ -1181,8 +1181,11 @@ static int ethtool_set_gro(struct net_device *dev, char __user *useraddr) | |||
| 1181 | return -EFAULT; | 1181 | return -EFAULT; |
| 1182 | 1182 | ||
| 1183 | if (edata.data) { | 1183 | if (edata.data) { |
| 1184 | if (!dev->ethtool_ops->get_rx_csum || | 1184 | u32 rxcsum = dev->ethtool_ops->get_rx_csum ? |
| 1185 | !dev->ethtool_ops->get_rx_csum(dev)) | 1185 | dev->ethtool_ops->get_rx_csum(dev) : |
| 1186 | ethtool_op_get_rx_csum(dev); | ||
| 1187 | |||
| 1188 | if (!rxcsum) | ||
| 1186 | return -EINVAL; | 1189 | return -EINVAL; |
| 1187 | dev->features |= NETIF_F_GRO; | 1190 | dev->features |= NETIF_F_GRO; |
| 1188 | } else | 1191 | } else |
