diff options
Diffstat (limited to 'drivers/net/netxen/netxen_nic_ethtool.c')
| -rw-r--r-- | drivers/net/netxen/netxen_nic_ethtool.c | 13 | 
1 files changed, 10 insertions, 3 deletions
diff --git a/drivers/net/netxen/netxen_nic_ethtool.c b/drivers/net/netxen/netxen_nic_ethtool.c index 20f7c58bd09..b30de24f4a5 100644 --- a/drivers/net/netxen/netxen_nic_ethtool.c +++ b/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);  	int hw_lro; -	if (!(adapter->capabilities & NX_FW_CAPABILITY_HW_LRO)) +	if (data & ~ETH_FLAG_LRO)  		return -EINVAL; -	ethtool_op_set_flags(netdev, data); +	if (!(adapter->capabilities & NX_FW_CAPABILITY_HW_LRO)) +		return -EINVAL; -	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;  |