Ver código fonte

netxen: fail when try to setup unsupported features

Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Stanislaw Gruszka 15 anos atrás
pai
commit
ef2519b1dd
1 arquivos alterados com 10 adições e 3 exclusões
  1. 10 3
      drivers/net/netxen/netxen_nic_ethtool.c

+ 10 - 3
drivers/net/netxen/netxen_nic_ethtool.c

@@ -887,12 +887,19 @@ static int netxen_nic_set_flags(struct net_device *netdev, u32 data)
 	struct netxen_adapter *adapter = netdev_priv(netdev);
 	struct netxen_adapter *adapter = netdev_priv(netdev);
 	int hw_lro;
 	int hw_lro;
 
 
+	if (data & ~ETH_FLAG_LRO)
+		return -EOPNOTSUPP;
+
 	if (!(adapter->capabilities & NX_FW_CAPABILITY_HW_LRO))
 	if (!(adapter->capabilities & NX_FW_CAPABILITY_HW_LRO))
 		return -EINVAL;
 		return -EINVAL;
 
 
-	ethtool_op_set_flags(netdev, data);
-
-	hw_lro = (data & ETH_FLAG_LRO) ? NETXEN_NIC_LRO_ENABLED : 0;
+	if (data & ETH_FLAG_LRO) {
+		hw_lro = NETXEN_NIC_LRO_ENABLED;
+		netdev->features |= NETIF_F_LRO;
+	} else {
+		hw_lro = 0;
+		netdev->features &= ~NETIF_F_LRO;
+	}
 
 
 	if (netxen_config_hw_lro(adapter, hw_lro))
 	if (netxen_config_hw_lro(adapter, hw_lro))
 		return -EIO;
 		return -EIO;