From nobody Thu Oct 2 13:03:25 2025 Received: from mail-ej1-f49.google.com (mail-ej1-f49.google.com [209.85.218.49]) (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 69F9F35AAB2 for ; Wed, 17 Sep 2025 09:58:28 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.49 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1758103110; cv=none; b=tSlGJz1E6lcnptnC2DU78qLA09YrdYJ68ASaj+dppTO8OjDa68Oam/Kq1TKf+W0Ya96uPeRIaOLt0WQmIxpaTy/aA26Gq2HSoXHcRfxX2TuivcN0kjCgKbiiBibOyV1jSlNYilbLQvAicLApkEQBecdC3QhXPVzti6DVv9pQpIs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1758103110; c=relaxed/simple; bh=Eu//yE4c+uDioPyDYhhWP0u0k0aovyGvDUK14dk6hs8=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=Lhm2Z6MC0Hick3SB1CgdBx59o9fqzEvD7bHpRyssE2JCBo7mOH8X+fQFp7hr2yPhwAtzyvyzkjEx97nVpRlUbwbVlfPFKkUZ46K72eHLTiu5l+YnsMDbQu5kNxONYIUDemI6r6G+w6ZNTQfuvst9QbRNqiJr+/j2M/xxy+2nveY= 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.218.49 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-ej1-f49.google.com with SMTP id a640c23a62f3a-b07ba1c3df4so1009741566b.3 for ; Wed, 17 Sep 2025 02:58:28 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1758103107; x=1758707907; 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=jhvJDJ5TvcWsO57iLHfIleWSEx5IFukthPMSyKAHdWWhDOLJFDAe+n+O2Dfr1d6n6L xgcN+g/bLZ1aIpiNoQn9o8xC6oYJBMe9MKJrelCKOZXZsN8EyNT1+FLEWUqnXs0nzHRj nXeQBosvqkagN45FmyzC+ZEUcvz2ZLPWe6ySFLER90jCVjB1MaXil2qTqzpN8VOCfQtq cGT2v4yNdKC35gAk1M20WIDvxSrz+6+MbmjTvQfRI5UoHDrnSAbUeH/jf3xatwoWvPFQ HyMrjsmfL6HWCHgAIann3L2x8f57WM9a7lffbwR7AG5+z9XejitcK0PKJckn1zuKur3J Vquw== X-Forwarded-Encrypted: i=1; AJvYcCUzLBHnHOi8n+tX+wSaFymoqk3R7iuXqpidEmS598yVgvsHPDk6hKLCj+tnlgz8UZeFSmaMaN/XjlE+7mQ=@vger.kernel.org X-Gm-Message-State: AOJu0YxTtGaFT2I9pUyrufTqwKBmT3INQXrt+fpgDuKJFboHj02BgiS6 Lt3ARekSTpyEQ5MALBqMc+InDnH+kbOKuwERqIunMJfwDk/tErBQjKbt X-Gm-Gg: ASbGncvIoaddAQMMKFwOUN0qXkGxQA7i7dKmorC8xTYX3c3Q7a8DG9z3VP7uoOAOK94 GScQdP8+kivdOoDI5/BdmvxMBaFIDKiryJ4pgkXCpPy3ckFLOzpl0M6gj2AvCmB6KOZ5PC/ycBI WedEjGb2EfheejqQar7hZCo0YwYwqPiBkcWvpr4WiPhBKL4ODyiL9dayjhLYnJol+lSFg1wSd2J 7X+x/bhb2V4auzpAoiLGaDsDQUaceV6KZtD4uSSy4GMEqWjwR+JwHMfdkxZ5iLSjEq2j1jf8QpH UBiaDTVGRzPNbSpqp0YRB+EE8W6LJ5kTm+RH1KlPfqbMkPaS2D/C+vqFXMw85Iw4ukMzADjPK7i 6rpDr60pyfbkB/Q== X-Google-Smtp-Source: AGHT+IFj6DMREGMXsSvDFa/csIOwP5DwuveP3f5kUNa993jX5oSzuBltRcVkgzKCeQgFyexn7pJ7kA== X-Received: by 2002:a17:907:7b8c:b0:b04:7232:3e97 with SMTP id a640c23a62f3a-b1bb9d0f224mr170452866b.21.1758103106603; Wed, 17 Sep 2025 02:58:26 -0700 (PDT) Received: from localhost ([2a03:2880:30ff:70::]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b07b32f22b1sm1348076966b.86.2025.09.17.02.58.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 17 Sep 2025 02:58:26 -0700 (PDT) From: Breno Leitao Date: Wed, 17 Sep 2025 02:58:14 -0700 Subject: [PATCH net-next v4 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: <20250917-gxrings-v4-7-dae520e2e1cb@debian.org> References: <20250917-gxrings-v4-0-dae520e2e1cb@debian.org> In-Reply-To: <20250917-gxrings-v4-0-dae520e2e1cb@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/8eHdtAcsmYgBoyoY2Tt4wLCwETTgcStetKA/Q6F44CCbtf2hWi cLtDjU+FJSJAjMEAAEIAB0WIQSshTmm6PRnAspKQ5s1o5Of/Hh3bQUCaMqGNgAKCRA1o5Of/Hh3 bS7+D/9SHuIXwZ310hb9JQXyJvLpC5awA9jKk58JusaDzMYU89odd39ehy+fs3bdIsrHMnI4zQn R8lp7d4VixExlPP+6AObZKyqY7740eRqMf8l25omf4bfhRZ9UnJQFLNTBWZdtOQezSprMynYRBD QB6gTIz0fFUgtaCdqQu/mQrZ9zgHI88rKE45z6pRFMgQiPYDt5NzH3Y9zy5XwCaa9kHqVrV/tzn 7GS2KG37glBAWyjlriPrlJthbnd0mMImTrResKazp46Lx29CvAmpboff2jqUJ1oCD/Eex20axk8 NwNJfiNyPzYkeG8hI1p+6jq5BRGS+svs14j3o29jYueSUUR9chkUcfPQ6YE606gW90IMUOwjSyd X6bWCyTl7ovTKt0XenErMZw7sqQmV2jjRHHfgx/nwgBKS9vuhNz0snUgaAc9ODQPvni8OTmsMCF BM7DR5C7c49n5pbBXCQR5PjP6VY7Im1PicMU8nvJdh2z/YAGQhfmbUgGky3niSdEVEP3qomBB/V qpNH3v0FqlQAlyk1IRP1BH91RKB0Qc/4DkF8AEQQmS1sooEriSPTNDV344H+scUtKFAVIav1Ywl o7A0nsYXzy10OvB223Kx0sfvY4m3sOLL67KffQ3lHOrm5lDMAPk7rmPVDTWRQmuPVSmeqoSFtr6 kp8JlGa1LR5v36A== 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