From nobody Thu Oct 2 17:01:15 2025 Received: from mail-ed1-f51.google.com (mail-ed1-f51.google.com [209.85.208.51]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 1803A303A06 for ; Mon, 15 Sep 2025 10:47:50 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.51 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757933272; cv=none; b=I1nyLAXShliX4B2QLyJ1NsKuDFk02VM/y8FvvOx+NtlxvJIBk8+sS8XhZwJeRyjjW0tRoqfh0ORYUJdAEY96oS/8Hl+XWKX665wAyP6CmamPpQZ2yQkGGPUmO5DYMG46Vf6pTpuUkpaRF7/jCwGzYFWfOYtKfO5kQIOl8O2l83w= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757933272; c=relaxed/simple; bh=Eu//yE4c+uDioPyDYhhWP0u0k0aovyGvDUK14dk6hs8=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=NQBMWqsoVfQs86bOIJxU+NneW1MsRVOKAXbk77tdKe5RIXW7pHkz+N58pHNwGeEXQ/me5LKAhn22nbCnW6Gug+F2E9iNG7nxbbtFYE8TeFdZNMXJvBRVkD8RAfnFRFvYGYj82FR3fvdxaSUwIlaTV7GzvhJQvXBWwsrssgoGz/U= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=debian.org; spf=pass smtp.mailfrom=gmail.com; arc=none smtp.client-ip=209.85.208.51 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=debian.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Received: by mail-ed1-f51.google.com with SMTP id 4fb4d7f45d1cf-62f28b8e12cso2400327a12.1 for ; Mon, 15 Sep 2025 03:47:50 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1757933269; x=1758538069; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=1/aC7Rw2Q/TRqJF9J43UBQHIqeXm4GXqxm40ob1/fn8=; b=bFMq63X/YWAUc+IPFu20wQ768fdwZcE88xB73xE40TT6sBgAtBBLkZc7kuYXh7Aybt dntNWQHbAqhEjIMjl6jlQJbaq3f4CDKLl+BIZfnR2egi7s09Rg1yJ1T4I8F5kXJ2zYmR LchJSGAv5/5b+bM1YK1OH+XN7i/jeebLetLTeGTMP4zsnuBw9lzwW1dQ7+xGTFosHXHS TX/NppnFevhr4NA1UfaXL/verUVLz02YdclX5qIzvcp9ZDNaRcmzONFuyuVC7wFKCJm5 w7i4kkHywgAyCq5oujRemvezNzwPMjLQY0+2XGGy/aq3FzwDESvD+nESlvUSWpyGPIFJ QjHg== X-Forwarded-Encrypted: i=1; AJvYcCUJS5JoFdoxAxnIvRhhNwxWpcz3Jc+a66gFsy8XG6jF8YRefvVs5i9fiw9a3VUnPJLYZJsOuGQ1etDVF/U=@vger.kernel.org X-Gm-Message-State: AOJu0Yx+RTRTJXp6HmnQ291tOtmn3f1vqM/rlNwTUL9T4zVVII58Cb4p yAdj6VP+Kxd8zB2ZKtLudnE+AZlyneU+C/pmzO+vzLqNKO1vSKwK2Iyn X-Gm-Gg: ASbGncsop/EPYRPaERw7pxriF1jT6O1E1KKzcAYWSHJJLfJEfKPiL8uJFd5ATKN6MyD 1c9N2P/H2Mwia7hq1CgD3UfodIqE7yzMAD7CmuunYPABX+5dqsMDQyJuExwYVGFKKgvxjB7uEER D+k1PCA6i1rM5twHorxO1pSXclQO00ExMtqrLAMHmbp6HsmQ6yNcSHxrvswW3LHOS/UM1BcEaQI cm/kfFiOtGlRZAD/imLluKFy7eTbKisVuTNT1A/ulcwQ57Ptej91nTCah13FNf20uRhUacAi4va zD7T1mzHWIAvS9tEodoysjKmpFpHXORY/JIgA4gF7pms5UqIzrfOxzetFKG5l/77qwCrtuFLpv0 UnMAIXFlxVgiI X-Google-Smtp-Source: AGHT+IEwH+gY2LJbNRhErpOEfDFHnDCncEuToIY9IAIehR8mc/uxvCTxJ2xnSL6UynV4TNodSRjd4A== X-Received: by 2002:a17:907:2d9e:b0:b09:6ff1:e65d with SMTP id a640c23a62f3a-b0970012972mr751793266b.61.1757933269248; Mon, 15 Sep 2025 03:47:49 -0700 (PDT) Received: from localhost ([2a03:2880:30ff:2::]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b07b334e602sm918832766b.105.2025.09.15.03.47.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 15 Sep 2025 03:47:48 -0700 (PDT) From: Breno Leitao Date: Mon, 15 Sep 2025 03:47:32 -0700 Subject: [PATCH net-next v3 7/8] net: ethtool: use the new helper in rss_set_prep_indir() Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250915-gxrings-v3-7-bfd717dbcaad@debian.org> References: <20250915-gxrings-v3-0-bfd717dbcaad@debian.org> In-Reply-To: <20250915-gxrings-v3-0-bfd717dbcaad@debian.org> To: Andrew Lunn , "David S. Miller" , Eric Dumazet , Paolo Abeni , kuba@kernel.org, Simon Horman , "Michael S. Tsirkin" , Jason Wang , Xuan Zhuo , =?utf-8?q?Eugenio_P=C3=A9rez?= , Andrew Lunn Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org, virtualization@lists.linux.dev, Breno Leitao , Lei Yang , kernel-team@meta.com X-Mailer: b4 0.15-dev-dd21f X-Developer-Signature: v=1; a=openpgp-sha256; l=2209; i=leitao@debian.org; h=from:subject:message-id; bh=Eu//yE4c+uDioPyDYhhWP0u0k0aovyGvDUK14dk6hs8=; b=owEBbQKS/ZANAwAIATWjk5/8eHdtAcsmYgBox+7HT3sixUggMAjXwTClt9JSZAR5d3rNmRsoX Lv7/Wpb2ViJAjMEAAEIAB0WIQSshTmm6PRnAspKQ5s1o5Of/Hh3bQUCaMfuxwAKCRA1o5Of/Hh3 bUltD/9wAl+e9m4yn8qMCqpqsVl26+O+hsxAmnI+nM6SzM4bP7yDwIfFAYQZIHZQQe9etCynlF2 /yYnLX2JEVbpiXY1b+fnMv9GIMOwqPV9m5Cru3eHEND69o9z8I1Vtb1vw8WYOvhOMcvfaKWxmRB T4hlSuSCad86h1teec3jczxqw3C62yHiYk8nzK6+AiEnbR8jTJ/YVTlCNNz7srSSVq1iNwBV/P7 tMNMDJdybt38Y4nMc9zBGf68hCNCq1NjA2dcQW7q3y9OrAr2cUAf0x3TvZBuWUWF6XnY3bErpnO WH2g4DMPGHaUfk9cBvzrLgNRHqoCVVEljmpw73oWhbhu4YF5CZQkOSAEaOs8KBPKyj+NGPa+lVJ ibZJepaEx4VK6GKGqfHrLhw3hxACHZ2VHtO/epWL+cFtqDYYQcicPeqqIEk1MkuSAjm2Fw8GxJM YJl6LkL1x6m6t1KplTQTiAmpKweLCxenE0Vhx3rXTwma0EsJZlHIzsZ8pmi5BvA3kqHb73jVnG0 S6ziZRmZfV5oQOejX2Ngup5SWpKwy1sEVGCyRUDxAXsPRHR/NtUWgkigvio85M2gwdFqyJYRNlc Ml9+U49tHtCkSEUSZPPm0QZ0Ty52PZoAYZtJNz0rvxsTEgNyxeEwL3y2AfqCRO3wDMyIGZmsvc0 bS2+Cdbm5JHophg== X-Developer-Key: i=leitao@debian.org; a=openpgp; fpr=AC8539A6E8F46702CA4A439B35A3939FFC78776D Refactor rss_set_prep_indir() to utilize the new ethtool_get_rx_ring_count() helper for determining the number of RX rings, replacing the direct use of get_rxnfc with ETHTOOL_GRXRINGS. This ensures compatibility with both legacy and new ethtool_ops interfaces by transparently multiplexing between them. Signed-off-by: Breno Leitao --- net/ethtool/rss.c | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/net/ethtool/rss.c b/net/ethtool/rss.c index 202d95e8bf3e1..4dced53be4b3b 100644 --- a/net/ethtool/rss.c +++ b/net/ethtool/rss.c @@ -620,23 +620,22 @@ rss_set_prep_indir(struct net_device *dev, struct gen= l_info *info, struct rss_reply_data *data, struct ethtool_rxfh_param *rxfh, bool *reset, bool *mod) { - const struct ethtool_ops *ops =3D dev->ethtool_ops; struct netlink_ext_ack *extack =3D info->extack; struct nlattr **tb =3D info->attrs; - struct ethtool_rxnfc rx_rings; size_t alloc_size; + int num_rx_rings; u32 user_size; int i, err; =20 if (!tb[ETHTOOL_A_RSS_INDIR]) return 0; - if (!data->indir_size || !ops->get_rxnfc) + if (!data->indir_size) return -EOPNOTSUPP; =20 - rx_rings.cmd =3D ETHTOOL_GRXRINGS; - err =3D ops->get_rxnfc(dev, &rx_rings, NULL); - if (err) + err =3D ethtool_get_rx_ring_count(dev); + if (err < 0) return err; + num_rx_rings =3D err; =20 if (nla_len(tb[ETHTOOL_A_RSS_INDIR]) % 4) { NL_SET_BAD_ATTR(info->extack, tb[ETHTOOL_A_RSS_INDIR]); @@ -665,7 +664,7 @@ rss_set_prep_indir(struct net_device *dev, struct genl_= info *info, =20 nla_memcpy(rxfh->indir, tb[ETHTOOL_A_RSS_INDIR], alloc_size); for (i =3D 0; i < user_size; i++) { - if (rxfh->indir[i] < rx_rings.data) + if (rxfh->indir[i] < num_rx_rings) continue; =20 NL_SET_ERR_MSG_ATTR_FMT(extack, tb[ETHTOOL_A_RSS_INDIR], @@ -682,7 +681,7 @@ rss_set_prep_indir(struct net_device *dev, struct genl_= info *info, } else { for (i =3D 0; i < data->indir_size; i++) rxfh->indir[i] =3D - ethtool_rxfh_indir_default(i, rx_rings.data); + ethtool_rxfh_indir_default(i, num_rx_rings); } =20 *mod |=3D memcmp(rxfh->indir, data->indir_table, data->indir_size); --=20 2.47.3