From nobody Thu Oct 2 11:49:07 2025 Received: from mail-ej1-f52.google.com (mail-ej1-f52.google.com [209.85.218.52]) (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 D16383451AA for ; Wed, 17 Sep 2025 09:58:19 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.52 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1758103101; cv=none; b=jnKcxOYUbvxXOJR36hD3F9GSuqY/rl7vzQeh/sDgjhPixqmaQhc0D8d1cFj0jSQqhS9iIts/83OggC/iZP9au6I4TNJsdIUNyI02bCgBw+383ZKKiC/nfkyapOtZpgOKXadml71q4l6JAdwDovb8kWJY+Itg1Pv0wuYV+Y0MFyQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1758103101; c=relaxed/simple; bh=LCDHUbohxTHgzzdULwcsi+67Tz4B7J+HXNyStYI9NJM=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=eXmiCcfxcGtdzt6xuJbl55ltJgCC1gjsGdiE1CPQkF8a8QkSfl6zcdXRRWO0bcLxgWThCxtybj0fYQ5s2s347IlneqsblDbvtuNTbrbCA8ONpGnOm0gFSRnHN5GaRm/YCUtCA0qxdKrullW1rhfzuxlmXL33g7ITje00OqzS/Xk= 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.52 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-f52.google.com with SMTP id a640c23a62f3a-afcb7ae6ed0so986164466b.3 for ; Wed, 17 Sep 2025 02:58:19 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1758103098; x=1758707898; 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=XjFEyEGuqdVSCAOxsi8hLG5VAzYgCXVIet3Kae4PlkA=; b=m/4iQqhNwciIMZMziaqvv0YGm3WTxB4VoYpK4a8HtEac/GRWyttCmN2WRu5BTX3mE6 m6bYRX9N95g9+txPwywbxRLfl59rfY9i84rsENo2ANDVOzTDGLmyATDIjf1w4UfBivME VF3t+huPayN8ZDdYmSe+jKQggYwp+oI+DPEBKLYgMKQW0ed3QZ7JZfFvB2Buem6RrRLN TuG/dwL6y5Eb9bRyTH/uAz9rpvnQaHRQaQdvhHh2NMy4UP4en5SNPNODLDkZEAxpfah/ WKAk8s5HMMSLyXuGuNc7Tyca0yYFMkM6FdoCt21ilJzSIBd/B3m0YSP5bUw5ubSJ+O9M wkMQ== X-Forwarded-Encrypted: i=1; AJvYcCV8zS/gKTD3RAyaWT00uo5DZtsr9MCS5atdqtfiDoVFQ9mxBfeDiIJCvigPmEkmq2mgtQ0cisFE+UjC3+w=@vger.kernel.org X-Gm-Message-State: AOJu0Yw4QUlcVhnkD394y/m+bUT+P85RqvfiTqNkUJNkbR9pKSrUxDL/ Hz6mM0MtZYlwbY8Btj6gn1mHapzDLxAvysECi4ysoFUw+MPlt5svDC0x X-Gm-Gg: ASbGncvFbqEAwabbWrx0+eMijZ4ql29SjeSylldnE54NHk1XmhRNksuETy48QsGNW2Y h3rKAPzddooKithM7QFy1HD6uwaRtcCRzxKJMxCObUN7a1K1rTDujdpkiXxmIOP483/ThWUUdFE dy6do/LGE8a6viEsmW4U1KB6jOtNUYLM8ourxn5IMIP9UHPetPlVjwHtqvzpcrDjRCO4WpxT4mf sMvajrWmnHMRCB6EmleUl7ubj6gJH7d/EWyhk+BAq9tiHBqx6ZjN8XVwE5CaTsYbIvqahaVAsDm weOLnOJCidabK3IXvLZUkV40hCp8IWfwWNoptdt7UXuJEHropG5iAi+5G2+27iKJX09hvG2N9o4 vBF+rCGXHnegk X-Google-Smtp-Source: AGHT+IF32qzwZCLc4MBxGsmW9WhgDqh4KQLE/xEwqC+/peEotmieMDpT8LsNsX1yfGVQeGzp8aNg9A== X-Received: by 2002:a17:907:3c90:b0:b0a:333:2f97 with SMTP id a640c23a62f3a-b1bb7f2a341mr188100866b.37.1758103098067; Wed, 17 Sep 2025 02:58:18 -0700 (PDT) Received: from localhost ([2a03:2880:30ff:4::]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b07b30da388sm1326212966b.22.2025.09.17.02.58.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 17 Sep 2025 02:58:17 -0700 (PDT) From: Breno Leitao Date: Wed, 17 Sep 2025 02:58:08 -0700 Subject: [PATCH net-next v4 1/8] net: ethtool: pass the num of RX rings directly to ethtool_copy_validate_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-1-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=1815; i=leitao@debian.org; h=from:subject:message-id; bh=LCDHUbohxTHgzzdULwcsi+67Tz4B7J+HXNyStYI9NJM=; b=owEBbQKS/ZANAwAIATWjk5/8eHdtAcsmYgBoyoY27qTLNPpFEVPrZdXSTPTiQ6yrKRmKdqmbf QY6yNNOuS+JAjMEAAEIAB0WIQSshTmm6PRnAspKQ5s1o5Of/Hh3bQUCaMqGNgAKCRA1o5Of/Hh3 bQckD/9KObOk9COJoYFWO77hAsuCTU4+zMulh6m6xxBNe2DEIfWbp25ZjPPkQvGdIOLoTpWIk11 /KP9eABtbMiR7ngAtKDSONV7dzKEF+Zb5ryUkNUuIJ5XB7HC6vUJVOFZo8AfEBNiSl4EaUwAdL/ 04vhfxMoYkR05psE9C2m1NYoVdmYcne9aTD37LlJM0L5X6HafbABgc/q+JfhHnKve/+yYoCKTYk B2k+OKQ9iT6QKha9+ecgjxmlCTx6abQeUGOj6PL4xUN5KthgiP1Pcut4XNye3i3SG5qJPlwrgFs ugJaubjrPuRQLyAeKsXA9YnDijtLCZtFU3ScMRXVIhCUb/wLpzms4sDAPt0+xrQZB9moFV1BnlX hk+y38UhWRYpuRUgQdVw7QGs4t8lmKRCIFY41cRRG2itSE4Fgk+6nLiMEH/BdgWnGka6rUfZ9cg gcBS7ecSS2svUmxIzqStNxRRHB+87Qrvh2BI4tspyf8fnBga5TKtu8seg2THJh9oEU1XNgoq8W/ yhd3NkkZEZ7fioMHrbxPnt8g/MkunSCxGRlcpAW5XZRc+RjPhECxJ5FzEjbXtFAxEvM11k/Aw+7 97xa7iB0YkNHopjyTuYhiVzXCZvVQjKONrQa4dpzeG2hP+1H6M982JUFkyXJrL/8CD2PbdRthO5 ouVU5d0dfifzTzQ== X-Developer-Key: i=leitao@debian.org; a=openpgp; fpr=AC8539A6E8F46702CA4A439B35A3939FFC78776D Modify ethtool_copy_validate_indir() and callers to validate indirection table entries against the number of RX rings as an integer instead of accessing rx_rings->data. This will be useful in the future, given that struct ethtool_rxnfc might not exist for native GRXRINGS call. Signed-off-by: Breno Leitao Suggested-by: Jakub Kicinski Tested-by: Lei Yang --- net/ethtool/ioctl.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/net/ethtool/ioctl.c b/net/ethtool/ioctl.c index 0b2a4d0573b38..15627afa4424f 100644 --- a/net/ethtool/ioctl.c +++ b/net/ethtool/ioctl.c @@ -1246,8 +1246,8 @@ static noinline_for_stack int ethtool_get_rxnfc(struc= t net_device *dev, } =20 static int ethtool_copy_validate_indir(u32 *indir, void __user *useraddr, - struct ethtool_rxnfc *rx_rings, - u32 size) + int num_rx_rings, + u32 size) { int i; =20 @@ -1256,7 +1256,7 @@ static int ethtool_copy_validate_indir(u32 *indir, vo= id __user *useraddr, =20 /* Validate ring indices */ for (i =3D 0; i < size; i++) - if (indir[i] >=3D rx_rings->data) + if (indir[i] >=3D num_rx_rings) return -EINVAL; =20 return 0; @@ -1366,7 +1366,7 @@ static noinline_for_stack int ethtool_set_rxfh_indir(= struct net_device *dev, } else { ret =3D ethtool_copy_validate_indir(rxfh_dev.indir, useraddr + ringidx_offset, - &rx_rings, + rx_rings.data, rxfh_dev.indir_size); if (ret) goto out; @@ -1587,7 +1587,7 @@ static noinline_for_stack int ethtool_set_rxfh(struct= net_device *dev, rxfh_dev.indir_size =3D dev_indir_size; ret =3D ethtool_copy_validate_indir(rxfh_dev.indir, useraddr + rss_cfg_offset, - &rx_rings, + rx_rings.data, rxfh.indir_size); if (ret) goto out_free; --=20 2.47.3 From nobody Thu Oct 2 11:49:08 2025 Received: from mail-ej1-f42.google.com (mail-ej1-f42.google.com [209.85.218.42]) (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 566C134DCF7 for ; Wed, 17 Sep 2025 09:58:21 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.42 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1758103103; cv=none; b=AziViWQJVJEPQl7aXUfoRYYVxitKwAlmMWHTKRwShypskLpEcY/Fn/V2WWJ83XzFR3XkzZ7o7Mq/hpbx0rVOPjkaYKnNKVEFm4nHUUefCqwtJxU4KhiYnqIWo325VylnoqEshKJgu4R5J2el2joF0Wnp5OCYHcXmRoODc0/QX0w= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1758103103; c=relaxed/simple; bh=4qXNf5FPKeqB6oI1PmmIoli/4B/k2fYlPhoDMAj4Ltg=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=Bi+YLXdh4v/CP8KPq0x0jvBjCFd0ovZ1PjhRB9Lz4xSNNH0Je3cqcRontjr2v9oAoOv4/q4tjoU7u3KRhnko/EASBOApToKWEUN/sGlDAEuunRGJfgJvjgV2YN37qQYwuXdQbb/Lk7Z1WRy5f6Az/lefipoh/OsJojdwonpByb8= 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.42 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-f42.google.com with SMTP id a640c23a62f3a-b07c28f390eso884490066b.2 for ; Wed, 17 Sep 2025 02:58:21 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1758103100; x=1758707900; 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=AEyyDJEjHIGcptoyVMY30XDmajElEFVLCjxYGTHfuEc=; b=WlvP06gEV0yTvYFdrU4DHUTSRPWN6vx4N9cPVy1a9dZQ9qdvaRZ9qeNYCXMEYqEzR2 K9ohOgDzsIVO8CHbNpCR/gjrE90IerSJmyXzGABM5k8rcU566b5bHOHercwF3nKFrrts Cuk4HG5WkYygVQIdo/FK+o5EIeOgPGrWdsrCgxYBsrOD/DGU830wK/YDiGd5Fkq+/d2K K+W6cHLkShznNhokz02z3O038wHiMQ0tFJFWLIMcCYJvlK4IotmgTXC13rUJxzKxEYQI APdQ/a22SpauKklta7opS6gfjom6yg58dhHWQD8bakP3+DFsAcxVC9V/2vybsmDYriQV 08Cg== X-Forwarded-Encrypted: i=1; AJvYcCVvzpCu7UElRBMbwSe3a6lyBjQx7Q3nIlMFpgf0YN5171BfmdFaU/s/WRTVSA2MMOxHS/laEe0y4p5Jpsg=@vger.kernel.org X-Gm-Message-State: AOJu0Yx0x87QnKaQBcEwZCb7LSTcpTWWa+qRMgMdeR9+SgvwjLAD2rnL 2y7O2vnVTOC+gn3a2kbS5dX2AKstcQ4KRP5AINrBFHQ5Chedr/rciQYT X-Gm-Gg: ASbGnctQkaez3RKmaU03cusf313hBGGHk2njTYyddLJQ/dwt/mccMO0bGAOAzZcPrhl rKTEd2zu/Vg+yqkQqKGHd93NTXpAyXiXBxR5EfS51pOnLZdF2B9k8iwTIFVBNAn8xArzws9JMWb aCxOUXchojxQwpCKbXmn893/PoaN1M/nukKwPM9J7VFOOdHZSKmUIWAhlCjNaGdDXNhuAnCc3EN Oj+R+stirhxFGISKV1GpmBjkJk9GwpGdOH0XadQu+WG4yxYeuDVOjvbaaQbjUxKBY+hoNOAjKO7 pIdf+2MkXi76400Vr7TG0OAEkzVBDGgdbAohIkBMtu7AqPmu/eXb+GBWTmYvcRqW1A4OtMp7KVP vHHpXzMEWITdpEA== X-Google-Smtp-Source: AGHT+IFmKSMVHhuFIvQinupVyiUNckMKMb5lWYss0WThxAB0V4vANhmyHX6vXQLprkM//2EeY/ySKg== X-Received: by 2002:a17:907:3c88:b0:b0c:a265:c02c with SMTP id a640c23a62f3a-b1bb5e572e9mr222242866b.12.1758103099498; Wed, 17 Sep 2025 02:58:19 -0700 (PDT) Received: from localhost ([2a03:2880:30ff:42::]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b07b31291b0sm1343812366b.34.2025.09.17.02.58.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 17 Sep 2025 02:58:19 -0700 (PDT) From: Breno Leitao Date: Wed, 17 Sep 2025 02:58:09 -0700 Subject: [PATCH net-next v4 2/8] net: ethtool: add support for ETHTOOL_GRXRINGS ioctl 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-2-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=2335; i=leitao@debian.org; h=from:subject:message-id; bh=4qXNf5FPKeqB6oI1PmmIoli/4B/k2fYlPhoDMAj4Ltg=; b=owEBbQKS/ZANAwAIATWjk5/8eHdtAcsmYgBoyoY2AU9fNvTISS+beBqpJEDcxAHhVAhTAHCq9 srn6uWzgxqJAjMEAAEIAB0WIQSshTmm6PRnAspKQ5s1o5Of/Hh3bQUCaMqGNgAKCRA1o5Of/Hh3 bav/EACG9P0Yxm8JP5TFsL1itesM8mMX5t+D87Z7fjw6n/bPC8stKFKiHf4HO5v6ao/MvPQu0c6 a49OqGLI01YJ+gEMnKPZ0s0AaOGZsscXy9tIxTG+1SFZ3IThHyVa8bA7suuTJ00vfXfBxinTG6N /vQjRj4a+IA60KFNI89/iBpirfrMMsnSdDNMmPXcs6bQycFimuQEs8RZpCJC1JJxoT4Z4reolko ajaTnJ8EXw+lhqb4nx6wk8fDbuepbVVhkajeE0mSoNQz4hFJ69fc+stXB6qnluuG+XrvwisMhMw MgNzQVN+4DdcfxRZ+EJOWzGKyhg47SyLTZDKO+NwvJT0Wm9hFXDlAxWg0427Ba2zwPssv9vWFRT SyMaxhyNbAmHzZjndir82/49HKpIy9yGo2Nw/XyZLy740CSoZUnBLmxgykZf0P09szeo3s+yp1V 9CnOZipMsiD4/cHsLlnIgZZOlrl5V2SJ+1uJ1LIolKgGdajfCzotoOWJC9Uqo85dIYaeKifvtbG lU07fl8zCdwmRGI8hFt6PGiQotMAlaWXNnAQ2WQdEKAQ/VlDuQe9npNeKy5cgN3GwD7pgN4PjIz RTZ2eRKu1NI8kZU9/pDXFoCiz7JRobHeYh4xaE2Fir85ZF8XlLt2dCrZUkgXEHIp92TG2Fnna2r ajP6h36DirNPoVQ== X-Developer-Key: i=leitao@debian.org; a=openpgp; fpr=AC8539A6E8F46702CA4A439B35A3939FFC78776D This patch adds handling for the ETHTOOL_GRXRINGS ioctl command in the ethtool ioctl dispatcher. It introduces a new helper function ethtool_get_rxrings() that calls the driver's get_rxnfc() callback with appropriate parameters to retrieve the number of RX rings supported by the device. By explicitly handling ETHTOOL_GRXRINGS, userspace queries through ethtool can now obtain RX ring information in a structured manner. In this patch, ethtool_get_rxrings() is a simply copy of ethtool_get_rxnfc(). Signed-off-by: Breno Leitao Suggested-by: Jakub Kicinski Tested-by: Lei Yang --- net/ethtool/ioctl.c | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/net/ethtool/ioctl.c b/net/ethtool/ioctl.c index 15627afa4424f..4214ab33c3c81 100644 --- a/net/ethtool/ioctl.c +++ b/net/ethtool/ioctl.c @@ -1208,6 +1208,44 @@ static noinline_for_stack int ethtool_set_rxnfc(stru= ct net_device *dev, return 0; } =20 +static noinline_for_stack int ethtool_get_rxrings(struct net_device *dev, + u32 cmd, + void __user *useraddr) +{ + struct ethtool_rxnfc info; + size_t info_size =3D sizeof(info); + const struct ethtool_ops *ops =3D dev->ethtool_ops; + int ret; + void *rule_buf =3D NULL; + + if (!ops->get_rxnfc) + return -EOPNOTSUPP; + + ret =3D ethtool_rxnfc_copy_struct(cmd, &info, &info_size, useraddr); + if (ret) + return ret; + + if (info.cmd =3D=3D ETHTOOL_GRXCLSRLALL) { + if (info.rule_cnt > 0) { + if (info.rule_cnt <=3D KMALLOC_MAX_SIZE / sizeof(u32)) + rule_buf =3D kcalloc(info.rule_cnt, sizeof(u32), + GFP_USER); + if (!rule_buf) + return -ENOMEM; + } + } + + ret =3D ops->get_rxnfc(dev, &info, rule_buf); + if (ret < 0) + goto err_out; + + ret =3D ethtool_rxnfc_copy_to_user(useraddr, &info, info_size, rule_buf); +err_out: + kfree(rule_buf); + + return ret; +} + static noinline_for_stack int ethtool_get_rxnfc(struct net_device *dev, u32 cmd, void __user *useraddr) { @@ -3377,6 +3415,8 @@ __dev_ethtool(struct net *net, struct ifreq *ifr, voi= d __user *useraddr, rc =3D ethtool_set_rxfh_fields(dev, ethcmd, useraddr); break; case ETHTOOL_GRXRINGS: + rc =3D ethtool_get_rxrings(dev, ethcmd, useraddr); + break; case ETHTOOL_GRXCLSRLCNT: case ETHTOOL_GRXCLSRULE: case ETHTOOL_GRXCLSRLALL: --=20 2.47.3 From nobody Thu Oct 2 11:49:08 2025 Received: from mail-ed1-f47.google.com (mail-ed1-f47.google.com [209.85.208.47]) (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 EEEFB350D4B for ; Wed, 17 Sep 2025 09:58:22 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.47 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1758103104; cv=none; b=LV4/zYXMsjGRjur21mI+uMhS/Q2cXX1mVgGWI2XZ6/lYipdS1EX+MJdPdrkEPIQrmCSPSf20WKmybGBe5qu8tG40KjPEPze2bPZMWmcLpCRtCm2yOMByR5HPXJkNCtnMsZEpiFHIOj+rPPpptjwpIO2SXLkrZzy3T9a8IhLwQtk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1758103104; c=relaxed/simple; bh=g5R+KO0zDOkxIkWQNfeVkn9e14oSE0vPMCqx5KVoKUc=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=jYpYxmHZDbbMrdtWu9q+MqX/b9p0xpQiLmNC8PzPbiYRyFF+AH5VgDOD8bAc/1ppTqmmJD75eWOTAgIXylBG+dAGLdFZDUI6e3OTFXrdU34LueOSQTwmHTS5oG3DBoRE33KQaEnHTgq7NA1s3JLCiy/cb6CpLAd8UQ0+BhWI8JY= 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.47 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-f47.google.com with SMTP id 4fb4d7f45d1cf-62f799a5b72so2245781a12.3 for ; Wed, 17 Sep 2025 02:58:22 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1758103101; x=1758707901; 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=BNdbybFK0ieLurW9tGv2v5Ky8Nf9YctW4a1t2pmLOlc=; b=hHBsVhd0dNB15BwJ/JQpmb5vYOxQXdvfYQGUQFiGyoffdkYH2+d/vrquXWI/Cx1qJM FwTAQITFBDVwoqeYDNrwk20Fa758N+HVRRMb9GCY9b/Eo3fdarBwAGFfGo1EFdHrsDHO Kf68URCFULGEUKiNH2v0Ky7+uOaUcBMo66EC2VwKDP0x5Tt0P1W8/7nCPJjH1/fhA5ji H5jiYr0LQ/wYJhKziMBm3bCrsvGf+XDTsD/JFaJDD8Nt2A/6C03BYzMKBfwz9KsFiha/ T+uWJX03/a3RGG0972mHOhzS8CEN8u2iQb9aTwb+xR4q1UZtBPORVMIDUgf4NNtby+lN wi5Q== X-Forwarded-Encrypted: i=1; AJvYcCVTmOiP+1iNKaG6a5kKED6eS8PYXCnRlSxHmEB4zUpwDA1R7PlHXug9zsfyTcA0f7gk5RDyVdHsOjRnmbY=@vger.kernel.org X-Gm-Message-State: AOJu0YyQS8dXgIIfn/o7w1pLZ7khBEyLRobZ+gOL7vjZIQXGxZ8/YVOR n0YkkISkKzu8k63ueu4FuRptPh0EVQkvj/ZZkA3+j21yiA/kruBDnyBO X-Gm-Gg: ASbGnctflwugzWn4b90HCWO2z+DNIwvkVJKQNsc/j6U0X+CzU6ZGq2suhrim7dasJna Nchq+FHYe5C4D9vJGGHc+yq7GYrY9cwvTAYF8oOmhgQRBebGdGiY7ZY9+3Qu1T5iLQnsRbyl+ms dupVyYlhHvP2Mvwww6GzFolhbu/aWgyoR10R3yUuMJ1qoZBn0GMrpeWGyVUn9hTz0kbQWOTFmAB Q7BIev9WB/la2h7ENvBDvDhRhuzYQN+KMFv8zrgSBtq9UeQmEGvvJCuFWlmhamvgvO0sntlhWy/ OsUDR/pTm1L8MzhZ64HI222YfPnCP2oMOIdJsfbyBl/aooxC1wRAuJiaPEw3SpgdPTK/AJeNG7r zk3C7pDNxoGdXMA== X-Google-Smtp-Source: AGHT+IF9gsv9B/3Aw1b6/l4dkXEsvW7pOqKmAQvqfxUdHAIvZfVq35PFKiJfuHhddGDPZJBvWjF2VA== X-Received: by 2002:a05:6402:21d3:b0:62f:26cb:8072 with SMTP id 4fb4d7f45d1cf-62f83c2db1emr1820018a12.13.1758103100907; Wed, 17 Sep 2025 02:58:20 -0700 (PDT) Received: from localhost ([2a03:2880:30ff:42::]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-62f86ecf183sm948650a12.12.2025.09.17.02.58.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 17 Sep 2025 02:58:20 -0700 (PDT) From: Breno Leitao Date: Wed, 17 Sep 2025 02:58:10 -0700 Subject: [PATCH net-next v4 3/8] net: ethtool: remove the duplicated handling from ethtool_get_rxrings 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-3-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=2140; i=leitao@debian.org; h=from:subject:message-id; bh=g5R+KO0zDOkxIkWQNfeVkn9e14oSE0vPMCqx5KVoKUc=; b=owEBbQKS/ZANAwAIATWjk5/8eHdtAcsmYgBoyoY2NykJuwtDfO+7ts1cC7uzwJBFwIMlPW4jm PiXHqlFAseJAjMEAAEIAB0WIQSshTmm6PRnAspKQ5s1o5Of/Hh3bQUCaMqGNgAKCRA1o5Of/Hh3 bTEiEACP/jgQA6Z2w3J5keCqjrA25kFufCckFxklkt0IibInyySwrZRb9Wecu3LAA6KJQKPRrjS PikTENRkF4T7PpF/0Ue6Gnu3ng4ao+WIec1MfWoS2qMlEr7gnNuvDRkPDpRlq2RJECJAsq03bKr xeCo3cif7l4Wq6KbYmH+6CFlcEULzPb7lalr5nBcvL24UedfPdidkZoqpbiTWYDWe9BKDtxPxJ/ ZBa7dqAzaAsqFBo7pe8PASZ37Ij6InKNDIBroMW+xSfczLGCPlqxdkYVWvQMCElR7/opXQOavtF KcWeuJUCagNyiqMjXKEmz6VB9QU/PXp1U2I7YHbykFWUlP1OZa82xtgcjclEkPXj7vZkqas+HfO m1/aHDDGFCrtETam1GytzfFCeLSOVEHKyH5jUZwO2wl/tvbx7EE7mAHOahgYQ0plo1cG2thaL9d URO/JDy+VNm23sSQ121kuH9KS7qSTbCnK/pBpgJ+3mzPvcsNarMGnoh6IX343QdR1qVvDSJJnR6 8uGxJL6D8jD4pAmnQS1m5Ni2QDl5XGEc4YzUwx4/73s8beybfs/zzHAJuojGw94ThlmyhZosS1m zobe3dnkrzM9m1s0smXKerzjqXhE6PmiarndwYA23MbVJqhxmxFdxz4H8/duNhxpml4eQayO/Ny LN8vq/ocCKgc8SA== X-Developer-Key: i=leitao@debian.org; a=openpgp; fpr=AC8539A6E8F46702CA4A439B35A3939FFC78776D ethtool_get_rxrings() was a copy of ethtool_get_rxnfc(). Clean the code that will never be executed for GRXRINGS specifically. Signed-off-by: Breno Leitao Suggested-by: Jakub Kicinski Tested-by: Lei Yang --- net/ethtool/ioctl.c | 33 ++++++++++----------------------- 1 file changed, 10 insertions(+), 23 deletions(-) diff --git a/net/ethtool/ioctl.c b/net/ethtool/ioctl.c index 4214ab33c3c81..a0f3de76cea03 100644 --- a/net/ethtool/ioctl.c +++ b/net/ethtool/ioctl.c @@ -1212,52 +1212,39 @@ static noinline_for_stack int ethtool_get_rxrings(s= truct net_device *dev, u32 cmd, void __user *useraddr) { - struct ethtool_rxnfc info; - size_t info_size =3D sizeof(info); const struct ethtool_ops *ops =3D dev->ethtool_ops; + struct ethtool_rxnfc info; + size_t info_size; int ret; - void *rule_buf =3D NULL; =20 if (!ops->get_rxnfc) return -EOPNOTSUPP; =20 + info_size =3D sizeof(info); ret =3D ethtool_rxnfc_copy_struct(cmd, &info, &info_size, useraddr); if (ret) return ret; =20 - if (info.cmd =3D=3D ETHTOOL_GRXCLSRLALL) { - if (info.rule_cnt > 0) { - if (info.rule_cnt <=3D KMALLOC_MAX_SIZE / sizeof(u32)) - rule_buf =3D kcalloc(info.rule_cnt, sizeof(u32), - GFP_USER); - if (!rule_buf) - return -ENOMEM; - } - } - - ret =3D ops->get_rxnfc(dev, &info, rule_buf); + ret =3D ops->get_rxnfc(dev, &info, NULL); if (ret < 0) - goto err_out; - - ret =3D ethtool_rxnfc_copy_to_user(useraddr, &info, info_size, rule_buf); -err_out: - kfree(rule_buf); + return ret; =20 - return ret; + return ethtool_rxnfc_copy_to_user(useraddr, &info, info_size, NULL); } =20 static noinline_for_stack int ethtool_get_rxnfc(struct net_device *dev, u32 cmd, void __user *useraddr) { - struct ethtool_rxnfc info; - size_t info_size =3D sizeof(info); const struct ethtool_ops *ops =3D dev->ethtool_ops; - int ret; + struct ethtool_rxnfc info; void *rule_buf =3D NULL; + size_t info_size; + int ret; =20 if (!ops->get_rxnfc) return -EOPNOTSUPP; =20 + info_size =3D sizeof(info); ret =3D ethtool_rxnfc_copy_struct(cmd, &info, &info_size, useraddr); if (ret) return ret; --=20 2.47.3 From nobody Thu Oct 2 11:49:08 2025 Received: from mail-ej1-f43.google.com (mail-ej1-f43.google.com [209.85.218.43]) (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 4683435206A for ; Wed, 17 Sep 2025 09:58:24 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.43 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1758103106; cv=none; b=OGAMzQLq3TLBPGtMAISn5jRgfino3cQ8T1gsv0KpULnKlUH5ST4DVCOWP0CinPbnDllRQ9flKw10IJ2NWQKMJcCNS3D09OdXb8UDq7ki22KoqiqbS6m/g+iKCM5F8XsByxgrCYZxhzWZTKZ5sDpEsfB7Hw4I968DqEOtRbCmi1g= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1758103106; c=relaxed/simple; bh=9BWXBrWWV7onXdD5Y7LlmKabKEBZvRMEMewGpwrLXjI=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=qSecoaKo1kIE+ZjNHWf2bUu30s+d0NWqnWgztAM0+0NqTTi7XmsDt00jap9wUUtbyoQt25MT2rFiz+qpSDjUhJ4FuRcMtCsvwNT/08Qlc0vKtQNLbPWn6GOPmE2JLIGxDz1LYkZ7xgUCP1AMbmQ6pNn0oMe9VREFTdbQioOyqzQ= 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.43 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-f43.google.com with SMTP id a640c23a62f3a-b07e081d852so724164066b.2 for ; Wed, 17 Sep 2025 02:58:24 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1758103102; x=1758707902; 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=xQE6LtSTYqQ+c2iAKiSALM65Z422xxQgQPusJ9V+cNk=; b=L9+sB5MvVX6rMaSI8+EWAzXJB4vUeInMsW26Ns5lRBx9y+6fE8xFhI2eaZ6ivVjYO6 p2C8Qs2fQkD5JAJIv0S8bRR9RKX5KBoiVsIcKfwN/pZ0XtJDK1KIYT9GYHBglfpANUPm IveVgO0ONWlI9rfzuyPYmYk1F17jaXiesLJgzDBU5L8NpypzbfhMIpPYsOplSuWjbBhp vtwfEJeYoarPfUYUqc32/iCeMsrnVen6AMwTSvPb7l/nboEpFMf/RZgau7dyt7cZNyGk UjJOiTYapGfSNbHL4okE7brxX8Xu6F451r3e9+onCR02J7eZwHLEGO1VWhz3vNdv/biE 1UCA== X-Forwarded-Encrypted: i=1; AJvYcCU5aS7a19iTo9WRlvM5TkWwHR0ZU4gC1h4UcmEDH2ziSHEK55FMNudHifnkzltt4pk+n9wFdNKIIYIzxdU=@vger.kernel.org X-Gm-Message-State: AOJu0YxkioyzKzR52aZNZIaQVAfAmp8wC20nVhJjvY70mlC/iY+eVQwL Wj/zbUlmGwcr45mZhSsw/rcHg7B5lF8AHDBsnFviVunXsS7OOqeXe10W X-Gm-Gg: ASbGnctmQ7apuFon4UArA4wS4wur5ascnZjbq/NpSP1KCeB728vmh9AJ0cQDFTLkknW ibzC/h13IrnZkiFmYOaIfIw7eeZPJCID16SalON0SRwMMOYyTccSbdlqgLDU0IxILk4Foy/BV4a WFgmfzJv06M8tc7APqi+wYZN2Rxek6L4TUjEG2mgE+4NCcxE/+qysVrq86mUIKGO2RhdCxMYaPB QlTdpYUfMikTdvVIuZnHLMecdVd6h+eMMX/5eAVZdGaSKtuV9bC/SsgY3RzDWjD1E9E10IBbOG8 +kaCYinf3Ifr7XzFRrWYX6TiRQHYnt48a/NzCd9Z1p/gqfS3CIgEE1pZ1ZQXqtdROPN2Oo8PLmB DxhTZb1fOVPVCpIu059pcQ5NdbFoWKqxO X-Google-Smtp-Source: AGHT+IFYZHeYkpuS99ezHy5849Hx5zCbaZ/mp70yB1SouYyTWZlfB9hmErX2+QC6IjE/8sv5ghVFfQ== X-Received: by 2002:a17:907:c0d:b0:b03:d5ca:b16 with SMTP id a640c23a62f3a-b1bb1020d85mr195258966b.23.1758103102365; Wed, 17 Sep 2025 02:58:22 -0700 (PDT) Received: from localhost ([2a03:2880:30ff:72::]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b07b32f21a2sm1355607166b.83.2025.09.17.02.58.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 17 Sep 2025 02:58:21 -0700 (PDT) From: Breno Leitao Date: Wed, 17 Sep 2025 02:58:11 -0700 Subject: [PATCH net-next v4 4/8] net: ethtool: add get_rx_ring_count callback to optimize RX ring queries 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-4-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=4083; i=leitao@debian.org; h=from:subject:message-id; bh=9BWXBrWWV7onXdD5Y7LlmKabKEBZvRMEMewGpwrLXjI=; b=owEBbQKS/ZANAwAIATWjk5/8eHdtAcsmYgBoyoY2z5BhvbZTvHZ0JxV+ekm87PIk4x54Ip06t oUdH2g0FiqJAjMEAAEIAB0WIQSshTmm6PRnAspKQ5s1o5Of/Hh3bQUCaMqGNgAKCRA1o5Of/Hh3 bb6YEACF3NEx/MdQVixAhaypqlYSJjboYzQSEL7H4+Qi0P8kmF+eQyQQGRfn/z16qCkhVD5zCXX UszOzJgYxDwizcOHv6WY7QuCFuFHu7J8jwMzYnHtdby5zXqQEpKyAwRURED+aPwil2ia90IrCzO CGrpsr4Lae9gm8C20Yv+Ac9jHzFnRmRt6z/1fAbbvSJ55InJFCXOdGx8rcscp1McrHdTNIT3VQ0 tjIO3YzbJOhXDPmUlnbj5asrMXzrciHA9M+H0RlbZbDiiYAUs4U1juz93nWQfQMwUGGoVBUZIjC Gm7b2gapXFugXHatG/8tcpXyeP+jTxON+sg/0YWFp7ZMYZT3+cq/wx5+6zTb7MphxmiWrBjEZNJ MdPec5lJ/es2MFtHVqYl2/0EeQOSZGs69AfZTv5keDG4yGYWaN2PzBNDsX+9iF40XsiyWkqs+0X 1t/qSCT6nJxFke9yYBunf9vX1xC2hjsipmdJQLMCtC92QRz2Lbt7NcWNYcM7vLbxE29k9ttyItq t5pHNUqPIhdulXbMN+hQr2EKlPVFuBIxez1bbPseyj7Nv8/4AGprTMU6UnsfZyWA/YpSGYIDecE xpc5nLTB3N2J8NSdbwj0bFz4m3ptkd/fI6FuNqYjPWUXyl8XQjX06hncOqAwP0czWAQmNGcDF00 dtJlcJ2RWCPUCVQ== X-Developer-Key: i=leitao@debian.org; a=openpgp; fpr=AC8539A6E8F46702CA4A439B35A3939FFC78776D Add a new optional get_rx_ring_count callback in ethtool_ops to allow drivers to provide the number of RX rings directly without going through the full get_rxnfc flow classification interface. Create ethtool_get_rx_ring_count() to use .get_rx_ring_count if available, falling back to get_rxnfc() otherwise. It needs to be non-static, given it will be called by other ethtool functions laters, as those calling get_rxfh(). Signed-off-by: Breno Leitao Suggested-by: Jakub Kicinski Tested-by: Lei Yang --- include/linux/ethtool.h | 2 ++ net/ethtool/common.c | 20 ++++++++++++++++++++ net/ethtool/common.h | 2 ++ net/ethtool/ioctl.c | 8 +++----- 4 files changed, 27 insertions(+), 5 deletions(-) diff --git a/include/linux/ethtool.h b/include/linux/ethtool.h index d7d757e72554e..c869b7f8bce8b 100644 --- a/include/linux/ethtool.h +++ b/include/linux/ethtool.h @@ -968,6 +968,7 @@ struct kernel_ethtool_ts_info { * @reset: Reset (part of) the device, as specified by a bitmask of * flags from &enum ethtool_reset_flags. Returns a negative * error code or zero. + * @get_rx_ring_count: Return the number of RX rings * @get_rxfh_key_size: Get the size of the RX flow hash key. * Returns zero if not supported for this specific device. * @get_rxfh_indir_size: Get the size of the RX flow hash indirection tabl= e. @@ -1162,6 +1163,7 @@ struct ethtool_ops { int (*set_rxnfc)(struct net_device *, struct ethtool_rxnfc *); int (*flash_device)(struct net_device *, struct ethtool_flash *); int (*reset)(struct net_device *, u32 *); + u32 (*get_rx_ring_count)(struct net_device *dev); u32 (*get_rxfh_key_size)(struct net_device *); u32 (*get_rxfh_indir_size)(struct net_device *); int (*get_rxfh)(struct net_device *, struct ethtool_rxfh_param *); diff --git a/net/ethtool/common.c b/net/ethtool/common.c index 4f58648a27ad6..10460ea3717ca 100644 --- a/net/ethtool/common.c +++ b/net/ethtool/common.c @@ -577,6 +577,26 @@ int __ethtool_get_link(struct net_device *dev) return netif_running(dev) && dev->ethtool_ops->get_link(dev); } =20 +int ethtool_get_rx_ring_count(struct net_device *dev) +{ + const struct ethtool_ops *ops =3D dev->ethtool_ops; + struct ethtool_rxnfc rx_rings =3D {}; + int ret; + + if (ops->get_rx_ring_count) + return ops->get_rx_ring_count(dev); + + if (!ops->get_rxnfc) + return -EOPNOTSUPP; + + rx_rings.cmd =3D ETHTOOL_GRXRINGS; + ret =3D ops->get_rxnfc(dev, &rx_rings, NULL); + if (ret < 0) + return ret; + + return rx_rings.data; +} + static int ethtool_get_rxnfc_rule_count(struct net_device *dev) { const struct ethtool_ops *ops =3D dev->ethtool_ops; diff --git a/net/ethtool/common.h b/net/ethtool/common.h index c4d084dde5bf4..1609cf4e53ebb 100644 --- a/net/ethtool/common.h +++ b/net/ethtool/common.h @@ -54,6 +54,8 @@ void ethtool_ringparam_get_cfg(struct net_device *dev, struct kernel_ethtool_ringparam *kparam, struct netlink_ext_ack *extack); =20 +int ethtool_get_rx_ring_count(struct net_device *dev); + int __ethtool_get_ts_info(struct net_device *dev, struct kernel_ethtool_ts= _info *info); int ethtool_get_ts_info_by_phc(struct net_device *dev, struct kernel_ethtool_ts_info *info, diff --git a/net/ethtool/ioctl.c b/net/ethtool/ioctl.c index a0f3de76cea03..8493ee200601e 100644 --- a/net/ethtool/ioctl.c +++ b/net/ethtool/ioctl.c @@ -1212,23 +1212,21 @@ static noinline_for_stack int ethtool_get_rxrings(s= truct net_device *dev, u32 cmd, void __user *useraddr) { - const struct ethtool_ops *ops =3D dev->ethtool_ops; struct ethtool_rxnfc info; size_t info_size; int ret; =20 - if (!ops->get_rxnfc) - return -EOPNOTSUPP; - info_size =3D sizeof(info); ret =3D ethtool_rxnfc_copy_struct(cmd, &info, &info_size, useraddr); if (ret) return ret; =20 - ret =3D ops->get_rxnfc(dev, &info, NULL); + ret =3D ethtool_get_rx_ring_count(dev); if (ret < 0) return ret; =20 + info.data =3D ret; + return ethtool_rxnfc_copy_to_user(useraddr, &info, info_size, NULL); } =20 --=20 2.47.3 From nobody Thu Oct 2 11:49:08 2025 Received: from mail-ej1-f43.google.com (mail-ej1-f43.google.com [209.85.218.43]) (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 99424353357 for ; Wed, 17 Sep 2025 09:58:25 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.43 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1758103107; cv=none; b=V9aiJfgMCedA7GSPXPKKsvnkZvFKSdgDSYM8kfj+rIaOEDUKgvqSeVhjJMhqRTgoM0+Q0QdatxBbn7FsgMmiGM8ND9FfqzQRM+P37IVHGEq0URiZrK3cCcBLPN5+MDRliknCgp1Q/tyrZrTsoY+AgbXCKCU6gSUxr4exUpy8c4o= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1758103107; c=relaxed/simple; bh=QXXieBKf/qDPoEgfClxj3gr2F5IdggJS5IlfjK3ieA0=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=Erh4PXde3WGLa/R9ph3RU/sy9myMb/iZbBfMr5p2ohPcDUraZKfBer7s72zBOIcuvcvISefsIe77/9+Fqs8i6umcDlSsN4fsCLmPoI8mgvTCt9BH8BJThVCU/GdEYEAsrOE3pop1dqiy+0gkgHbYRFr+RfmGYUa8QpFLVDToOTc= 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.43 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-f43.google.com with SMTP id a640c23a62f3a-afcb7a16441so978985166b.2 for ; Wed, 17 Sep 2025 02:58:25 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1758103104; x=1758707904; 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=lOgozD00A4hNFRi8AgAmWi2KKHVWlXL+R7SPq6Vi9eU=; b=ivmN1pQ1BiIEKMKgUcPNx+ZuJ0W2akzD9GDpOf4p/rTpys+p0ktjqQ4wUhUmBs/WaE jP5fz/9zYmhbp9xsuqTQI0EiKtaq3zszxnqrtzgCn8bJTLo6GAPqihbnv1Wqc7Sf8vvr b4ew2GtgDHPSf+KDGVC8ZITC8kRPNngxxPUxxbq4Hc4412n1IaXe+zKvkH8AiaPQWkmC +2OjlyTEZW4LIrMYzt5RPk3nIheTD5O5ZoxEv2qFpKKK4L6PxkEri8rATHx9hyeNyfRO j6rpqmBxPetXeJ0jj/qqEY6uSX4WkhcqZN/XQOw6lux51bojUAMcMAATyibjravverOt 99Zg== X-Forwarded-Encrypted: i=1; AJvYcCXJKkgDy7xV4ChKU3UUr5ut6AHXq5a14s858h4SBw5yIoJ8PQaLaRL21BIzbL78gyP/Hi3xhueNqFQteBg=@vger.kernel.org X-Gm-Message-State: AOJu0YxocRKPymZj0Y5vCZ1srRaZjSq1S4yREGh8hozFVLT/hxMvYrDR 9KmJx7gxkvMACa/YI4Zex2nYiJKpq2qbbi8XKKoo41KXEAKR5v1R69d0 X-Gm-Gg: ASbGncsDd9mCACgZxUV5gv+fy//n4jMsdu3VGTgHxj1iS2O6dVzrqTtEQ9/2ciVpAQ+ 9sOO05HPR0+CjNfJQS9HuJbe8HT8veczbtb3lKmMFdu1LlZPu5HwYkOXbC9cZehXGhs40ko5o7c j8ma/NR6aFyehyAiz/zwkzoejvkp2oVpi8y+BBbYKy1xaD6fm+ZnHQq+W6dl52JIRw8BUFzdpDh a1hT1QXfAmxiRKuOs1LWs1EJ0MocL0XS8g5WqUL56AnHV9ApMJbiqCT1IXAt8lAnzWFocutZgZ0 tGDCPfCW8/GgPCEhwCPY4KERw29yJm0LxMHcZMZt3j4SxivZ9HAbafeDb5WX8zvBTn9H3Q6BWY5 Hp2zZ2rf9DtAh X-Google-Smtp-Source: AGHT+IHWhNLaSj4GaBET29vGLJOZQzKQJUIhJjiuxTD58qfCtQouRqIuAShsRH1fyV82nqGogZX5PQ== X-Received: by 2002:a17:907:94c3:b0:b07:c5a0:fcaa with SMTP id a640c23a62f3a-b1bb6ed624emr165473366b.26.1758103103766; Wed, 17 Sep 2025 02:58:23 -0700 (PDT) Received: from localhost ([2a03:2880:30ff:5::]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-62f49d30d41sm4969284a12.15.2025.09.17.02.58.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 17 Sep 2025 02:58:23 -0700 (PDT) From: Breno Leitao Date: Wed, 17 Sep 2025 02:58:12 -0700 Subject: [PATCH net-next v4 5/8] net: ethtool: update set_rxfh to use ethtool_get_rx_ring_count helper 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-5-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=2319; i=leitao@debian.org; h=from:subject:message-id; bh=QXXieBKf/qDPoEgfClxj3gr2F5IdggJS5IlfjK3ieA0=; b=owEBbQKS/ZANAwAIATWjk5/8eHdtAcsmYgBoyoY25eFsVy8R4NXrf+9RD+lXdDdWZIOeQrhQ+ mOxxJ5vCeGJAjMEAAEIAB0WIQSshTmm6PRnAspKQ5s1o5Of/Hh3bQUCaMqGNgAKCRA1o5Of/Hh3 bYoLD/92b1Xe/T/RSALr69nvsx9sWtm5Wy3XIYTHPln+VmBNVEHVTIO9O17fDkYkY7FRplWcqQy 0NWlSnLYVeWYyPmKEersEqULKSvKe3quLbXapfHiW6cW7SmratrEdt4PqdiH8HgTANiYxV00m/a JDYM5aW4gi5TGX8ktwKZ3C2d4BRX7xSfUYS3+PslPmFkESkkxko5kAI4S9kI/y+4fz8XLHdR+U9 rAOEdYD4woePExV/lvMUEsubiXbcbccbxWD1vRucB0k1NbY1bKcMKHn9TH7NqYPM4iRFwo+ma3X GOnkTNw1RAkRiXJ3BRjYbJs5IeT0DlPnoSb5IsbOzxGoJhBpatbCxm9Ik/EGyedqgt44wxRlvAn cc78e9rOeKuZUsd1T2gi+IFBdiBnWCCSjPq+bTaAMvfxnqqgQSiieigZH4tY7InXvBebZ5Yh3Fh n8pO97F1lbgR59Rae4bcJYcVgB7mrQnBAHoUyHZcO8cHN6eLBd98+gviXoI30bph530ybj7+RsP hiu+bGX16tSOwb1LwcuIJzQ0se/TGy/7xJZC70L7lsYpws0SD470IBCrwGkGY6tqXAAuV88p6TT uUfH0hvBtpKa+B+VTCJHcLHN8mKYa/5eA2rzIuqnGIgQSYyYNuc0vqX3Wv16Oc6+aBzEDCeeXjr X96zrOO4jy+pXJQ== X-Developer-Key: i=leitao@debian.org; a=openpgp; fpr=AC8539A6E8F46702CA4A439B35A3939FFC78776D Modify ethtool_set_rxfh() to use the new ethtool_get_rx_ring_count() helper function for retrieving the number of RX rings instead of directly calling get_rxnfc with ETHTOOL_GRXRINGS. This way, we can leverage the new helper if it is available in ethtool_ops. Signed-off-by: Breno Leitao Suggested-by: Jakub Kicinski Tested-by: Lei Yang --- net/ethtool/ioctl.c | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/net/ethtool/ioctl.c b/net/ethtool/ioctl.c index 8493ee200601e..d61e34751adc8 100644 --- a/net/ethtool/ioctl.c +++ b/net/ethtool/ioctl.c @@ -1531,14 +1531,14 @@ static noinline_for_stack int ethtool_set_rxfh(stru= ct net_device *dev, struct ethtool_rxfh_param rxfh_dev =3D {}; struct ethtool_rxfh_context *ctx =3D NULL; struct netlink_ext_ack *extack =3D NULL; - struct ethtool_rxnfc rx_rings; struct ethtool_rxfh rxfh; bool create =3D false; + int num_rx_rings; u8 *rss_config; int ntf =3D 0; int ret; =20 - if (!ops->get_rxnfc || !ops->set_rxfh) + if (!ops->set_rxfh) return -EOPNOTSUPP; =20 if (ops->get_rxfh_indir_size) @@ -1594,10 +1594,11 @@ static noinline_for_stack int ethtool_set_rxfh(stru= ct net_device *dev, if (!rss_config) return -ENOMEM; =20 - rx_rings.cmd =3D ETHTOOL_GRXRINGS; - ret =3D ops->get_rxnfc(dev, &rx_rings, NULL); - if (ret) + num_rx_rings =3D ethtool_get_rx_ring_count(dev); + if (num_rx_rings < 0) { + ret =3D num_rx_rings; goto out_free; + } =20 /* rxfh.indir_size =3D=3D 0 means reset the indir table to default (master * context) or delete the context (other RSS contexts). @@ -1610,7 +1611,7 @@ static noinline_for_stack int ethtool_set_rxfh(struct= net_device *dev, rxfh_dev.indir_size =3D dev_indir_size; ret =3D ethtool_copy_validate_indir(rxfh_dev.indir, useraddr + rss_cfg_offset, - rx_rings.data, + num_rx_rings, rxfh.indir_size); if (ret) goto out_free; @@ -1622,7 +1623,8 @@ static noinline_for_stack int ethtool_set_rxfh(struct= net_device *dev, rxfh_dev.indir_size =3D dev_indir_size; indir =3D rxfh_dev.indir; for (i =3D 0; i < dev_indir_size; i++) - indir[i] =3D ethtool_rxfh_indir_default(i, rx_rings.data); + indir[i] =3D + ethtool_rxfh_indir_default(i, num_rx_rings); } else { rxfh_dev.rss_delete =3D true; } --=20 2.47.3 From nobody Thu Oct 2 11:49:08 2025 Received: from mail-ed1-f49.google.com (mail-ed1-f49.google.com [209.85.208.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 09A0D3570A4 for ; Wed, 17 Sep 2025 09:58:26 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.49 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1758103108; cv=none; b=O9jMn9v8z7xD9cbs4UZ90gw9Z8qQFjP3wxkvTrECwlFUjta7uI3bagJYcEkAbZh7nO0tv4w/rvO6/ftNR0sRA7LhJePsvf3pyBgoXq+wmN4vsJkrNwtBeRkKtMpodlneN4JMGH83S6IQeSvLeCpH9eVfvbd8gp4DFjoeTkga8jA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1758103108; c=relaxed/simple; bh=kfv8/isgFJkve+pUMNYFR+xX7YuKFGDbmsknnEybwB8=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=auZCYYwh8wE8Fxndl5E2es+2+X4DzBM7NR6XVncDpUqW0ButOyqhg/87esUaHhskXuppW6RGVVH2P9mCy/+ZWrLioXkNcOBpR989nQzAhQw3zDWLE8twSYeS5pSpNjEbYFRm9RYO3HVIxk2m9cUuBq5rDBvmGzKvyRoDqeyllIc= 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.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-ed1-f49.google.com with SMTP id 4fb4d7f45d1cf-62105d21297so12464268a12.0 for ; Wed, 17 Sep 2025 02:58:26 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1758103105; x=1758707905; 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=+aJLU+C/XG/Cs7lbHPBzQftppoOaWgk5/Dp38Z+cqoI=; b=m/iHdCAHlDuIdKb3QxAktz9ow8Nm/6ITp5ANvEbKemQ45QuR4DRgwOBjxfHJCDT5E2 CtA7JrHP3D9AXF0quTpA0EvxRGh36NwepQxnt0ggrh5eFvf7Yty2Pic9W+WjEnz9X6oj 2hjI2DM/al4tdyV7h9/bnQ544pxG6yBD+N6Q++1jPJf66xitgZ384i2si5C7XSNMQScB fTjzzrxFpvhF7Uu/o89EFENf5OO69CfoNuX66hJZBYp5MB6McSspmgrpL756zAxLo2p6 IKJpPTgxmAmBQYDtW0xQw9bMLHTxJW3zFsPAToHHiJ/XCLwf7pVl6BEBS6Ei2VR/Zjq1 nvXg== X-Forwarded-Encrypted: i=1; AJvYcCUyfBI5hfdUVSXy/itUWwZp0cPyki1sQXoStCjAEruZYAa9HeBNkPu3dRqXFu7mFvIpTXRzjsq80teQM4c=@vger.kernel.org X-Gm-Message-State: AOJu0Yy5x8fSvV5ZmXS4cgz41ie0CBppX16HYRNWnGILWsCCIAIhitag CImENp6KdjE85CnhaLwKNExXlIqxNQm2jeWVTjHUjpm97163oe0aNiSR X-Gm-Gg: ASbGncs8X2zR3UZ45pXcllvKnKCiz7W1vRlqCWVcdoH+Zw4DvWubt5bp0PGNhSAjfW1 hX9FDRVWcapLtX5zexs/lrpApEXA3AzMVPG7K+PF0YOf3VAy7FXOa6QTDHFkduNZYP3nmw3gKEf IELfWUre0DjcV+rwBh5K4BOoymX0NiC5srqQb8hcM/kvfhhFb4wwebo7PqSTQKiKbKf2D3rseiF q79UgyTzUjMK9x8PhTvMjz3pb2SOKe1SOsjx0d9Jpx9PxWxZf/juh75E15gBYG4gUfBflafHTb8 WSMSmLosxmkf/yHPZ018FamLX5udyLe0uzC9pNBPzmVlPoLCqN+IcMw3X7JwGD21W+zTACdxSSg XtPXTs6cSdkLG X-Google-Smtp-Source: AGHT+IFbtxDDQiq4E6vrTUTnLWzSiiGw7r9iV9QyFrVEem4PTiAwde6mW4FJX0XXykQM5eRuqX7WoA== X-Received: by 2002:a05:6402:1ec9:b0:625:fc4c:567f with SMTP id 4fb4d7f45d1cf-62f84462564mr1698377a12.18.1758103105127; Wed, 17 Sep 2025 02:58:25 -0700 (PDT) Received: from localhost ([2a03:2880:30ff:5::]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-62f482a3153sm5247282a12.0.2025.09.17.02.58.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 17 Sep 2025 02:58:24 -0700 (PDT) From: Breno Leitao Date: Wed, 17 Sep 2025 02:58:13 -0700 Subject: [PATCH net-next v4 6/8] net: ethtool: update set_rxfh_indir to use ethtool_get_rx_ring_count helper 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-6-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=2016; i=leitao@debian.org; h=from:subject:message-id; bh=kfv8/isgFJkve+pUMNYFR+xX7YuKFGDbmsknnEybwB8=; b=owEBbQKS/ZANAwAIATWjk5/8eHdtAcsmYgBoyoY2pwyR+9ANWMW/E3om+S0EZhq0AcURdXWvZ AT482XewVaJAjMEAAEIAB0WIQSshTmm6PRnAspKQ5s1o5Of/Hh3bQUCaMqGNgAKCRA1o5Of/Hh3 bRulD/9QIbtKwc8DEsOHr4z4Z65vPq0qcPfRPVuUh/zIwIexjpBzieGa8L6yRr1FAaFLYVSm84L NV3fI7L0k3WQC1QY+3gFfUgRKwnZu8Nbr+yIXFyDddRHuI5I08hTu51mJCe6th3wL2kYe37Il/I yCZdr8/5hBL6zKbTipKvj7ZdbE82bq3pmm7k/GPQ+tSvTNv2h5Rt7rhWEgDS8JyK/oufPg0TNOg YBhzQcsc1UXLTZHMSTUg/fNKrWCritWn1jF7/irRTaHuXHIFOipjkIRebn8cZg2u9hySbampAEp 3iYbHPO82OqPrBNkX/Je4qolBNxq9MPQPVbxC+0Kdd/RPwjlGFnYi8MPbaEB1zpQSvpRw+i625g 4BuF2nF8om7GTvw+u9mApzImPBYRGS3ryw2FztGzgV0RFWQxaINinCB3KV7xUrMDsZ6yDy/VGA1 tFm4v4UOSntDWrvpHPYGdJpUBQRGwkp8l1PSasq4voKPDjMuz7+Z/8T6WZVkJ4SN+dhfvM56Ui5 7C7Q3O8kjJZ+OgUMZkJTsjUaQuLvsXdEoxhbUTZSaQeKCNQWD1RSUHM6RAkiUvdVuHE+aLj903Q rM77om5qtEA36HvH/kTM0LaPYo6BDqYl2N8NZ+pKJf0hcKLOVySqdt0gbLkITi3lOryaB5sBMU7 d7BtHnrFU3F3MXQ== X-Developer-Key: i=leitao@debian.org; a=openpgp; fpr=AC8539A6E8F46702CA4A439B35A3939FFC78776D Modify ethtool_set_rxfh() to use the new ethtool_get_rx_ring_count() helper function for retrieving the number of RX rings instead of directly calling get_rxnfc with ETHTOOL_GRXRINGS. This way, we can leverage the new helper if it is available in ethtool_ops. Signed-off-by: Breno Leitao Suggested-by: Jakub Kicinski Tested-by: Lei Yang --- net/ethtool/ioctl.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/net/ethtool/ioctl.c b/net/ethtool/ioctl.c index d61e34751adc8..fa83ddade4f81 100644 --- a/net/ethtool/ioctl.c +++ b/net/ethtool/ioctl.c @@ -1350,13 +1350,12 @@ static noinline_for_stack int ethtool_set_rxfh_indi= r(struct net_device *dev, const struct ethtool_ops *ops =3D dev->ethtool_ops; struct ethtool_rxfh_param rxfh_dev =3D {}; struct netlink_ext_ack *extack =3D NULL; - struct ethtool_rxnfc rx_rings; + int num_rx_rings; u32 user_size, i; int ret; u32 ringidx_offset =3D offsetof(struct ethtool_rxfh_indir, ring_index[0]); =20 - if (!ops->get_rxfh_indir_size || !ops->set_rxfh || - !ops->get_rxnfc) + if (!ops->get_rxfh_indir_size || !ops->set_rxfh) return -EOPNOTSUPP; =20 rxfh_dev.indir_size =3D ops->get_rxfh_indir_size(dev); @@ -1376,20 +1375,21 @@ static noinline_for_stack int ethtool_set_rxfh_indi= r(struct net_device *dev, if (!rxfh_dev.indir) return -ENOMEM; =20 - rx_rings.cmd =3D ETHTOOL_GRXRINGS; - ret =3D ops->get_rxnfc(dev, &rx_rings, NULL); - if (ret) + num_rx_rings =3D ethtool_get_rx_ring_count(dev); + if (num_rx_rings < 0) { + ret =3D num_rx_rings; goto out; + } =20 if (user_size =3D=3D 0) { u32 *indir =3D rxfh_dev.indir; =20 for (i =3D 0; i < rxfh_dev.indir_size; i++) - indir[i] =3D ethtool_rxfh_indir_default(i, rx_rings.data); + indir[i] =3D ethtool_rxfh_indir_default(i, num_rx_rings); } else { ret =3D ethtool_copy_validate_indir(rxfh_dev.indir, useraddr + ringidx_offset, - rx_rings.data, + num_rx_rings, rxfh_dev.indir_size); if (ret) goto out; --=20 2.47.3 From nobody Thu Oct 2 11:49:08 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 Suggested-by: Jakub Kicinski Tested-by: Lei Yang --- 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 From nobody Thu Oct 2 11:49:08 2025 Received: from mail-ej1-f50.google.com (mail-ej1-f50.google.com [209.85.218.50]) (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 E37A334AAF9 for ; Wed, 17 Sep 2025 09:58:29 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.50 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1758103111; cv=none; b=OHX9WTGlTsFWK8VJ39GtHfe8YlJjsgyrM0yOY8gJ9E6gE2klPW7lkO7vxXwdBXwzd27SiMTYD+b2DBPp/Ua3RMehA14qBCaEUkmHiZt2y3AK3vO9DVC4icxd0+uR7fX+w+zcGjbWbI2PAEAXTQ1HHGxOEabCr+6AGntZkd3eKoc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1758103111; c=relaxed/simple; bh=XORibMK+HoTqfv4y9FVPPOq9ONbLbN3AR+BVl4Gb9Yg=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=Ru46msgWEP7rbEnY/pNrKGN3hj7Gid+shcKhOwuq+K8Ev3DQbHGPAQVzqZYlhMGVkq3WDPRY5SE5G9lWK3BmLuKPBLVToDNYzamEn0K7TvbDMlual8HC4K5GujQXQFhNpXDDpaFEpJIbqcOSKg/qRhvwcrScLk/IC/SIyx/K0Xk= 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.50 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-f50.google.com with SMTP id a640c23a62f3a-b149efbed4eso338631166b.1 for ; Wed, 17 Sep 2025 02:58:29 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1758103108; x=1758707908; 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=DEFtILFHyV3cwaZ5irPCMUES0101pMsbpssc+ihdXEQ=; b=D2KbzV7G1GGdZKTMlfQB3Id0Zr0HIsKdYLGOigbfsRuNkXazb2/6CXMf7Ye+go5ss2 YvnaGaK88lOUGwK6GAeK+bfs5foO8/l9MzCbVF7RExdNv39HekqqqJMAZC1w04BGNyqg eYUEcybNBbvVep0eetmyPtPKqRbO+B/DLks6YB0L6jf9EBHsr/cGHHsI4/o9g7NhWjmh +cHc8l12iNmLFDK27fkPBzDKxTcQV87M8n2l7TXwuzm/9kJ7qkhrrl6M0wL8ivuk2cV2 01UQl5dyInxY5Z51bQqcW46AtGXM9RxwwgyI2ZUvLOZhZQNl3Gvtk0jnf0+7SjiCE0Cc lkVw== X-Forwarded-Encrypted: i=1; AJvYcCW3l0QLuVGhwr1wmE6iFltW84hMXPztIkg/MKN5Ha+OPzaHa4EdqLU7jUDmGvLD0IcOpRFjp3vcXrXel98=@vger.kernel.org X-Gm-Message-State: AOJu0Yzs7wmUGuf+YacNuOcyCGmtBmFYGGg2LEfZ11/m/OftHJWy0a6X p57wo4HwZSVDuNZfbszBfOnMrBymkzrc75TN/QWS7FzOQSEYcz95wYvT X-Gm-Gg: ASbGncshavaOwKC6ollDAIUMxXgqnv3tHe30tNhmtliEels+hznKJzs73lIS1KoiRmu lGm8nOIbfzJt41iIRMVl06DU76eYCvQLsQCqjFtMgxiIz/I/g0lSNrOWsDcSufDBZEdbUMfVRuY m6U8XWwPq50PSAUJCqvgiGw81HQRmm5fYQ621nHQEzbhyOEHsj82mMGEZHzNiw4+CUdF7Ur875U ZPVBBRUrHbP1Thd3D8uBzEPCNOPUI6roSZZkaQJUSAcSCNYj6MJzWtbntRWFYh8RUYdb+lRNhx+ ulM0DsF8Si5rVmQRg/ZV0TkR9oDOQt7NxY0T9wqpKd53MZ/0uyyMLdkTIkHLtpaXBtwrfSRYZVY xc+29vIXCHRGnheenw+RQ X-Google-Smtp-Source: AGHT+IEqeQhl1HdnaOEdPXXYr8xFvU7BK+9Cs56y4h7GmNKdlAOvFfnmqWDD7Q+i2v4rGlEWhLskZQ== X-Received: by 2002:a17:907:bb49:b0:af9:a5f8:2f0c with SMTP id a640c23a62f3a-b1bb68035d8mr197119866b.28.1758103107998; Wed, 17 Sep 2025 02:58:27 -0700 (PDT) Received: from localhost ([2a03:2880:30ff::]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b07b30da327sm1350226766b.11.2025.09.17.02.58.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 17 Sep 2025 02:58:27 -0700 (PDT) From: Breno Leitao Date: Wed, 17 Sep 2025 02:58:15 -0700 Subject: [PATCH net-next v4 8/8] net: virtio_net: add get_rxrings ethtool callback for RX ring queries 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-8-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=1617; i=leitao@debian.org; h=from:subject:message-id; bh=XORibMK+HoTqfv4y9FVPPOq9ONbLbN3AR+BVl4Gb9Yg=; b=owEBbQKS/ZANAwAIATWjk5/8eHdtAcsmYgBoyoY3Xg2ReWutpzuplHGRfOc58F+2D2T7u15Yu VNzmPJhOWuJAjMEAAEIAB0WIQSshTmm6PRnAspKQ5s1o5Of/Hh3bQUCaMqGNwAKCRA1o5Of/Hh3 bQMzD/9wTBbNV8xsjWexX4c9iyGc5EdKAfyO5JoJCa/IVGqwt7eQbgeI8pVT5ObPGfkHf792BKu v+QMwY5lTXAECKDHzhz17Bt9md6UlQx+UITRER2/LtiBuDjXz+NJNgsm1K6TotMDAMzYuTjNque j7xgaNpF/dT5iYOjqi5GTDHW8C7rYOzUHA70UwKG7wFx7Jf/p9PMnomGBqViqOL6fPnr6fvKeVB NNwsJRLjDIFYWhtPMdrqdQ+k5b4hdMyGuv54EDzCvLl6a2OW5CDxU/MkLrAro4gNGvZdwjnXuUn YVKPkAxxX/UABmL7moQB1MDhvJU1TfnpQBvH5o+5YvNckkjBLqKhjOwCjHlPqj8OrAkBBY9/AFL 759QQNjsFlTzpL2qmRD2CiNCQqacNIKkl+CJ3xcJ9HxsF+4hlAzgUAlLDGBpKzvZ4LL8/UXbb5t +mRQwyDYyAMtaz3YeJN61qBPV5v81++PK030sJOFR+N11hXfJZpMlts19iDyAEzcKBQj7xQdoFQ T7oNCn7VXR3fvGBZsF0Yb1xTAllLIGv4vNhJJ18eQILWQUHNerQ68+WikirijPjz7+fv+beMm8E pXMdOfKbKuAVE9HB43kkUcQdq2bi9Zg7H0U4xKbvrQTx1kVZXZSHyhUyMAK4HqAKDIMRHuHujLb 90PeNk2Cn68l6KQ== X-Developer-Key: i=leitao@debian.org; a=openpgp; fpr=AC8539A6E8F46702CA4A439B35A3939FFC78776D 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: Breno Leitao Suggested-by: Jakub Kicinski Tested-by: Lei Yang --- drivers/net/virtio_net.c | 15 +++------------ 1 file changed, 3 insertions(+), 12 deletions(-) diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c index 06708c9a979e6..7da5a37917e92 100644 --- a/drivers/net/virtio_net.c +++ b/drivers/net/virtio_net.c @@ -5609,20 +5609,11 @@ static int virtnet_set_rxfh(struct net_device *dev, return 0; } =20 -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 =3D netdev_priv(dev); - int rc =3D 0; =20 - switch (info->cmd) { - case ETHTOOL_GRXRINGS: - info->data =3D vi->curr_queue_pairs; - break; - default: - rc =3D -EOPNOTSUPP; - } - - return rc; + return vi->curr_queue_pairs; } =20 static const struct ethtool_ops virtnet_ethtool_ops =3D { @@ -5650,7 +5641,7 @@ static const struct ethtool_ops virtnet_ethtool_ops = =3D { .set_rxfh =3D virtnet_set_rxfh, .get_rxfh_fields =3D virtnet_get_hashflow, .set_rxfh_fields =3D virtnet_set_hashflow, - .get_rxnfc =3D virtnet_get_rxnfc, + .get_rx_ring_count =3D virtnet_get_rx_ring_count, }; =20 static void virtnet_get_queue_stats_rx(struct net_device *dev, int i, --=20 2.47.3