diff options
Diffstat (limited to 'drivers/net/ixgbe/ixgbe_ethtool.c')
-rw-r--r-- | drivers/net/ixgbe/ixgbe_ethtool.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/drivers/net/ixgbe/ixgbe_ethtool.c b/drivers/net/ixgbe/ixgbe_ethtool.c index d4ac94324fa0..dbfd62fd40eb 100644 --- a/drivers/net/ixgbe/ixgbe_ethtool.c +++ b/drivers/net/ixgbe/ixgbe_ethtool.c | |||
@@ -2113,7 +2113,17 @@ static int ixgbe_set_flags(struct net_device *netdev, u32 data) | |||
2113 | bool need_reset = false; | 2113 | bool need_reset = false; |
2114 | int rc; | 2114 | int rc; |
2115 | 2115 | ||
2116 | rc = ethtool_op_set_flags(netdev, data, ETH_FLAG_LRO | ETH_FLAG_NTUPLE); | 2116 | #ifdef CONFIG_IXGBE_DCB |
2117 | if ((adapter->flags & IXGBE_FLAG_DCB_ENABLED) && | ||
2118 | !(data & ETH_FLAG_RXVLAN)) | ||
2119 | return -EINVAL; | ||
2120 | #endif | ||
2121 | |||
2122 | need_reset = (data & ETH_FLAG_RXVLAN) != | ||
2123 | (netdev->features & NETIF_F_HW_VLAN_RX); | ||
2124 | |||
2125 | rc = ethtool_op_set_flags(netdev, data, ETH_FLAG_LRO | | ||
2126 | ETH_FLAG_RXVLAN | ETH_FLAG_TXVLAN); | ||
2117 | if (rc) | 2127 | if (rc) |
2118 | return rc; | 2128 | return rc; |
2119 | 2129 | ||