netxen: fail when try to setup unsupported features
authorStanislaw Gruszka <sgruszka@redhat.com>
Sun, 27 Jun 2010 23:33:29 +0000 (23:33 +0000)
committerDavid S. Miller <davem@davemloft.net>
Tue, 29 Jun 2010 07:53:27 +0000 (00:53 -0700)
Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
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;