diff options
Diffstat (limited to 'drivers/net/cxgb4/cxgb4_main.c')
| -rw-r--r-- | drivers/net/cxgb4/cxgb4_main.c | 15 | 
1 files changed, 14 insertions, 1 deletions
diff --git a/drivers/net/cxgb4/cxgb4_main.c b/drivers/net/cxgb4/cxgb4_main.c index 5f582dba928..1bad5004142 100644 --- a/drivers/net/cxgb4/cxgb4_main.c +++ b/drivers/net/cxgb4/cxgb4_main.c @@ -1711,6 +1711,18 @@ static int set_tso(struct net_device *dev, u32 value)  	return 0;  } +static int set_flags(struct net_device *dev, u32 flags) +{ +	if (flags & ~ETH_FLAG_RXHASH) +		return -EOPNOTSUPP; + +	if (flags & ETH_FLAG_RXHASH) +		dev->features |= NETIF_F_RXHASH; +	else +		dev->features &= ~NETIF_F_RXHASH; +	return 0; +} +  static struct ethtool_ops cxgb_ethtool_ops = {  	.get_settings      = get_settings,  	.set_settings      = set_settings, @@ -1741,6 +1753,7 @@ static struct ethtool_ops cxgb_ethtool_ops = {  	.get_wol           = get_wol,  	.set_wol           = set_wol,  	.set_tso           = set_tso, +	.set_flags         = set_flags,  	.flash_device      = set_flash,  }; @@ -3203,7 +3216,7 @@ static int __devinit init_one(struct pci_dev *pdev,  		netdev->features |= NETIF_F_SG | NETIF_F_TSO | NETIF_F_TSO6;  		netdev->features |= NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM; -		netdev->features |= NETIF_F_GRO | highdma; +		netdev->features |= NETIF_F_GRO | NETIF_F_RXHASH | highdma;  		netdev->features |= NETIF_F_HW_VLAN_TX | NETIF_F_HW_VLAN_RX;  		netdev->vlan_features = netdev->features & VLAN_FEAT;  |