Commit 48344669 authored by Breno Leitao's avatar Breno Leitao Committed by Jakub Kicinski
Browse files

net: virtio_net: add get_rxrings ethtool callback for RX ring queries



Replace the existing virtnet_get_rxnfc callback with a dedicated
virtnet_get_rxrings implementation to provide the number of RX rings
directly via the new ethtool_ops get_rx_ring_count pointer.

This simplifies the RX ring count retrieval and aligns virtio_net with
the new ethtool API for querying RX ring parameters.

Signed-off-by: default avatarBreno Leitao <leitao@debian.org>
Link: https://patch.msgid.link/20250917-gxrings-v4-8-dae520e2e1cb@debian.org


Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parent 8b7c4b61
Loading
Loading
Loading
Loading
+3 −12
Original line number Diff line number Diff line
@@ -5609,20 +5609,11 @@ static int virtnet_set_rxfh(struct net_device *dev,
	return 0;
}

static int virtnet_get_rxnfc(struct net_device *dev, struct ethtool_rxnfc *info, u32 *rule_locs)
static u32 virtnet_get_rx_ring_count(struct net_device *dev)
{
	struct virtnet_info *vi = netdev_priv(dev);
	int rc = 0;

	switch (info->cmd) {
	case ETHTOOL_GRXRINGS:
		info->data = vi->curr_queue_pairs;
		break;
	default:
		rc = -EOPNOTSUPP;
	}

	return rc;
	return vi->curr_queue_pairs;
}

static const struct ethtool_ops virtnet_ethtool_ops = {
@@ -5650,7 +5641,7 @@ static const struct ethtool_ops virtnet_ethtool_ops = {
	.set_rxfh = virtnet_set_rxfh,
	.get_rxfh_fields = virtnet_get_hashflow,
	.set_rxfh_fields = virtnet_set_hashflow,
	.get_rxnfc = virtnet_get_rxnfc,
	.get_rx_ring_count = virtnet_get_rx_ring_count,
};

static void virtnet_get_queue_stats_rx(struct net_device *dev, int i,