|
@@ -2336,6 +2336,24 @@ static int ixgbe_set_flags(struct net_device *netdev, u32 data)
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
+static int ixgbe_get_rxnfc(struct net_device *dev, struct ethtool_rxnfc *cmd,
|
|
|
+ void *rule_locs)
|
|
|
+{
|
|
|
+ struct ixgbe_adapter *adapter = netdev_priv(dev);
|
|
|
+ int ret = -EOPNOTSUPP;
|
|
|
+
|
|
|
+ switch (cmd->cmd) {
|
|
|
+ case ETHTOOL_GRXRINGS:
|
|
|
+ cmd->data = adapter->num_rx_queues;
|
|
|
+ ret = 0;
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ break;
|
|
|
+ }
|
|
|
+
|
|
|
+ return ret;
|
|
|
+}
|
|
|
+
|
|
|
static const struct ethtool_ops ixgbe_ethtool_ops = {
|
|
|
.get_settings = ixgbe_get_settings,
|
|
|
.set_settings = ixgbe_set_settings,
|
|
@@ -2371,6 +2389,7 @@ static const struct ethtool_ops ixgbe_ethtool_ops = {
|
|
|
.set_coalesce = ixgbe_set_coalesce,
|
|
|
.get_flags = ethtool_op_get_flags,
|
|
|
.set_flags = ixgbe_set_flags,
|
|
|
+ .get_rxnfc = ixgbe_get_rxnfc,
|
|
|
};
|
|
|
|
|
|
void ixgbe_set_ethtool_ops(struct net_device *netdev)
|