]> git.karo-electronics.de Git - mv-sheeva.git/blobdiff - drivers/net/netxen/netxen_nic_ethtool.c
netxen: fail when try to setup unsupported features
[mv-sheeva.git] / drivers / net / netxen / netxen_nic_ethtool.c
index 20f7c58bd0920fefe38d5bc9fb4cc58892d9a526..6d94ee57946648e76aa9dfa8c302e9f1f92e8db3 100644 (file)
@@ -887,12 +887,19 @@ static int netxen_nic_set_flags(struct net_device *netdev, u32 data)
        struct netxen_adapter *adapter = netdev_priv(netdev);
        int hw_lro;
 
+       if (data & ~ETH_FLAG_LRO)
+               return -EOPNOTSUPP;
+
        if (!(adapter->capabilities & NX_FW_CAPABILITY_HW_LRO))
                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))
                return -EIO;