From nobody Wed Sep 10 05:18:53 2025 Received: from mail-ed1-f42.google.com (mail-ed1-f42.google.com [209.85.208.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 F0482341655; Tue, 9 Sep 2025 20:24:19 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.42 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757449461; cv=none; b=KlFCZXA4ZkdGUXoBv6O1Z75IpGCwupXO4HFDQTgdfuYvnfbVpic0rixZQk1F3QAMQ3x95qibL8lt1IClChIIyDcnkwapydftfVh/fbQ0pWFCIQWhqzSm897vQ4qJVP5vlL1D8iqU7uIlZso0d8oR8MjY8x+tKOA1oxv6847rLaI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757449461; c=relaxed/simple; bh=LCDHUbohxTHgzzdULwcsi+67Tz4B7J+HXNyStYI9NJM=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=CNmq+fV6NwMBj4GEW/jS79KbaAvpbiseoZwtSbjuMrKZpxYbg3kJmawdYDEMwlYFNjTZi/xXfuRYivSOiAn/Ja8v3FM+cSJwT5tBmYdhLtJqX/ZvjaWHj7+leTu3ekp8uIpAUpDAcAW0douTQv5gbKZ3GQwZToyr4ztFB8W0/bo= 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.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-ed1-f42.google.com with SMTP id 4fb4d7f45d1cf-62221568039so5877373a12.0; Tue, 09 Sep 2025 13:24:19 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1757449458; x=1758054258; 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=NyCgkfxAC+v9vjO4qBpmIj8TZYzpEl+CBzb6+jvVCuU9Z54GBW1T6AVvLw7oYQtmoK LPyiDv6KG52o5Xt9ubQRoQ9HpTQqMIuV/KpSGV6To2hTd7wjH2qpTFAygC+zpGkZNAA3 8IigDm9wV6UMWg+VZD+OUFKnLxrQC/2KOfPa+URmy+ttYeznLQiT4YMrWC88askeuVlV +mJjNPfcowJI1rFUF/bTVEYn/sWcD5/tz1YoWzyP0tjmo/Tczjd3dy/yvvpFSLoMUo8d qRhDHbCWLUCYwZkXBhAbJo2KF7N1Vka3PAtdNj4g1fZtM1mdh9s1b+nefui9j1GjdRWc D8EQ== X-Forwarded-Encrypted: i=1; AJvYcCXLt9+leEMyJdIJsyVPL/h1jnGDWL1uAuOcJEcYY+OEyoDe4daIv4f+Kv56xAhr3oeJHqLn0Gkz3Y4PWk8=@vger.kernel.org X-Gm-Message-State: AOJu0YzFPKFjQQT4UfEi8rcgj0Oy/D6O7l97OhLMPON3UOKhOnycaaBu WjKTsxl+KRVULWjW4mYaBEZH/K6Syaiktr0vo6jTmEwgl7TuKrtBrZtL X-Gm-Gg: ASbGncspg8eptW/qH0Al1gUUwL0/dHWcc8knJzXBUaa444jARqQC8umEXlNYNZcM12P Baz7oCzfRUuda6vOCtTR2ZrGGXFGk7KUlYtm3R7BDlMO+KFEF7W2SOmYd0/Nr3tafEE9Xs9Htq7 m0IzA24p0/Bzx7Wr6v0wqgopKCvjGWAMrzZvCChtUVlHhZQwJ/e1LuYlec6Ob281AP94TFKsYyi qsGjP47b1HrfIbuBOKONJ0vygkY6BubSqHPSPnGmCWAqVXi6sBiyNKKIdqvsGXi7vUp/lYnJY2K VnrDXuN4tHNbN85ige9qFhwqUEap3r9/b93Qbj3SDBvv08WRMGkVg+qbK6nVfhXYK40sBLtCyhg LfiYTe+fsL2cZ X-Google-Smtp-Source: AGHT+IG8G0E+/fESz8FriBcET9t0B7QGifi2i0GUmg+X9kDZI1HmO3AELIQZW3TPQ93vWVnhr8dQ5Q== X-Received: by 2002:a17:907:1c93:b0:b04:4625:2372 with SMTP id a640c23a62f3a-b04b1437fe0mr1243169366b.15.1757449458203; Tue, 09 Sep 2025 13:24:18 -0700 (PDT) Received: from localhost ([2a03:2880:30ff:1::]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b07833ffa5fsm45923766b.94.2025.09.09.13.24.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 09 Sep 2025 13:24:16 -0700 (PDT) From: Breno Leitao Date: Tue, 09 Sep 2025 13:23:59 -0700 Subject: [PATCH net-next 1/7] 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: <20250909-gxrings-v1-1-634282f06a54@debian.org> References: <20250909-gxrings-v1-0-634282f06a54@debian.org> In-Reply-To: <20250909-gxrings-v1-0-634282f06a54@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 , 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/8eHdtAcsmYgBowIzuerRDZ8RHFW+5bNt7VkK6dkH9KziDNR3xi Mgsq0vZQh+JAjMEAAEIAB0WIQSshTmm6PRnAspKQ5s1o5Of/Hh3bQUCaMCM7gAKCRA1o5Of/Hh3 bTzxD/4nKkd93VMR2pDozwJKwJndOQpHEpM58d+xsJWZnYD9TzUijQNvdUTLw9/Emywiski4vRH 4BlBx6zvH13HyfFnMjR79zDPrXw8YFLR8YsqtHm2RNjS3OShwLjBdYeS9PKOk2OfxusYW9ScSoH AdpZxkcr52bpAOw/99tN05gC5VCfMOusg2PVqLILjnN6FMdz2YezC37iCMPPKNLzSHD9n/55QxH Qyi/n9hkZLQozFGyjC/TDa/VxCb1/gQnYf3/g/dpOA7TZDUjBTqcUxjKmTYlxGVJ1eWakI8Zadc f3Y9VyukA+Ys+HdZ7biEVaCOKoCMztF7hg5kshBRn2Tqo0cLId/zDXr0Ie/lbmmOVgFlTKyQmoA XfF3JpODkZL5+3Y6gkLGeJdmj4xjw0sVKqqtNXI+AA4/lu0ZJsIydw1DMqFeraC2q3OUVZ8DlF+ I9+v3ZUItnz+JqxJ72ZADIId0gCG9mgEZSt1zMtjuLH341EB3K/iVWr8FHeAxnRDeP42rKYcPui a5MHdsm2hOIPUH5Y9ZpygkSBKlHcTkFTKVk4izeDmaLAtK0Ehv5zgN952IJ4KL8eRRw2yvkLq6t kj5AJ/B5+GYvVXHwNYowP17lfor4+IhTjtJdS51IHYRZshDvF1fTQn1Zdns5F+8Zv/gil8eyw29 SjRQF+vqVT+/yQg== 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 --- 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 Wed Sep 10 05:18:53 2025 Received: from mail-ej1-f54.google.com (mail-ej1-f54.google.com [209.85.218.54]) (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 6F00E35CEB2; Tue, 9 Sep 2025 20:24:21 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.54 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757449463; cv=none; b=PtGiQE8bBg35EoqVAXn+33l5mGFxT44KELfGPGMjxz0V/sRak+rK29Wgxsmr78PLnbehwxporlV/VXkVrlrY1UWyTl2sPypJRM3fkVpvUP2Uswa6Z+MX0UJmCxD1NIiw0Y6yMl4yPLdCOPe/WttfMUL53uXpgZEvS02E77ttC68= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757449463; c=relaxed/simple; bh=4qXNf5FPKeqB6oI1PmmIoli/4B/k2fYlPhoDMAj4Ltg=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=XUdf9kenMKnkhLAf3TNopDNd6nzOavHYZ0k8FpUrRO/0xYZM9qQeGmqmODNTadLdcdFxlqt1ZymEwjrqwhE/JYh+YVbDu3us02VHBCwyFL5geSZK2GEZy3mhfgwQAp0oVLPxxudCD3TcKVtvqgpCzXMUAZ957YZaX5uA7Oi1/wM= 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.54 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-f54.google.com with SMTP id a640c23a62f3a-b047f28a83dso1033788766b.2; Tue, 09 Sep 2025 13:24:21 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1757449460; x=1758054260; 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=bn/8sCxjxKLHqNjk6XQVtnqzp2LToIXvJKMN7NTesuhtdeL43AKBWmANhIdjba9HMz k01M71ztOLYMIgFoYLWaqvJDfwckS+8i6hiw5OCcHwtFyB6amkHL5V5eXbp1GLWc0wV7 TEh69eWKH0fqu3hJrQsVOa67lGtKY13YDtOtIyTndZzoFO8qyEDl/5eJ0pDHYIDF3vi2 gNSPu9OOF3m55BRaCcapvUNI1fyZx9EGW+eOW0CG3NWv8p9Zti79lfGp6ftHSgGBHESM aO9vlaPjBe66gIm0ZJvCYO8nGlZJ28EXLeQKRy2uiby6JgYoITRMpWnXDkcRjlrCCWtX ho4Q== X-Forwarded-Encrypted: i=1; AJvYcCXpw2tYJEU76ISQ+RMWuSdAq11EOFlzezJtNOhUmlxKB+7DjKaWxJD326TSe9gdurkY4aCHYGfF2Mo1yjI=@vger.kernel.org X-Gm-Message-State: AOJu0YxrytFyruk0u+yZ9kYXyepSBu01WzhOD12WNSBRUJdMlVPWJInY YtSdLopvtR3BsPF/xCRZ9ude235ogF/8lAUqd6SA/o/+UEa2ewNzdUE3 X-Gm-Gg: ASbGncupAKA1We75HyfyguxAN3XEMh4LOZ6/n365MTBRLFapf0ra8JBT2fjcGypVm69 X0K4XU4eA++ZbGrDxdsCkX7hK2Xp9qO+eLVEbQ82Fitjob52EyPnEYoIoY44ai8cDIZ+CkXW3CK atl7OfJrBBrdLf/BiJzvFeIWDFD5el5l2dfknVX+hqtea4/7uEjMqL7YV+JRMJw4Z3n7yeTmj1c VPM+bwfG/mfciEG8dXge5Bc9ny/JHsTsbYGxb3H/DApJdCUngURsqx2pJT4DuvDZ20T2DNTYWqa f3Mto5p1EAPqsXzMjXk0V2PsrmcaxDY6HcN91Tw5JOFKOzgeA0QtvoE/ZSdqE0j2TnXD8DBuqUs h7rmsCa2qqnZc X-Google-Smtp-Source: AGHT+IFu1r0fknjD96QmQU54NZeaJTSld6HXrwh8lrDcMpKUCdz8Ptis3MfqzOneT4vAqsA+wMPHNA== X-Received: by 2002:a17:907:86aa:b0:b04:33a1:7f1b with SMTP id a640c23a62f3a-b04b1446e50mr1215344166b.19.1757449459625; Tue, 09 Sep 2025 13:24:19 -0700 (PDT) Received: from localhost ([2a03:2880:30ff:3::]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b07830a7bc3sm46969566b.36.2025.09.09.13.24.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 09 Sep 2025 13:24:19 -0700 (PDT) From: Breno Leitao Date: Tue, 09 Sep 2025 13:24:00 -0700 Subject: [PATCH net-next 2/7] 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: <20250909-gxrings-v1-2-634282f06a54@debian.org> References: <20250909-gxrings-v1-0-634282f06a54@debian.org> In-Reply-To: <20250909-gxrings-v1-0-634282f06a54@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 , 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/8eHdtAcsmYgBowIzu0yH3IVMs7fK4gZDpzXSyteK9WNUC9W295 SdSoczlAr6JAjMEAAEIAB0WIQSshTmm6PRnAspKQ5s1o5Of/Hh3bQUCaMCM7gAKCRA1o5Of/Hh3 bYD6D/9lJqcUOpNSwQqYATFngBRmXbtxTJJbT8gKRbinsx7LmqsT9rfMUOnNqVm6EqmnuRdb802 4YBtIm7OViTHvs4mIBT5FOtxpPMnx2vIme38yxQocH0NOS9yzHxiGrMg1GdP1KXKJTcfQPrAmjN BuhR43mukV1l3182jrSI7tt+WfKGoXqvaRbXyjCY8JCR2mAzDWuaRewyDNRCf/BCww0YFL4135J P8LfZ/CYiR81GsHOcw7scN1NajcVBkjKu878wVwzUT5lfa1VOfBVNcXWc/0ySSCKj0pWGlgc4Dx vxTl9Bs5LftPamGY8dEgUizjpICHLL5lT607vGZLSdPzpggo33lKuhStONeCk3SumP06KmQ5RGn WJDtg4F2Sxyh4TqSbS7BeaXb/Nm07serEdlF4t1/3u9Nhd0C5dDRztjwEeicl768N29qbztjFjt Sfb2SXqI+br8DqesRODoFa2aamRZOihhcGtgcvsxf6TYJd7oknBxys/7wTz0fOB2+Fo4wpYn7ua DLhTbz14UHH30XjPw6GHTqjISymcXp1iTbm/Ef0UKM4A7Vb/8m+k0Ju3jIMl9qxX32BpAIFANRv v7mOKztZv8Qjzf6XQkvwQJxJuSUVlnmM7OtjbWsVRe/Kk41oum+qnCW3V+p3l/7TY858hzlYfBC WTV0eG162l3eacw== 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 --- 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 Wed Sep 10 05:18:53 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 D8F1835FC05 for ; Tue, 9 Sep 2025 20:24:22 +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=1757449464; cv=none; b=oGocijRzEF7yRHNb0Q8SWBJkHxMqXNCSXnsQ+a58Jz94sXvfh05KhOFW29HDATyzqg7ukC++wsfG6LH7xtvC22sFqqjAsXHkvMe51a9pIaS0soRb+Gf3BCkGQUP6aqr3HY/X5oAOKpJhZpgggtcuvJyBLP5HYt/pxLDmdImLbVs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757449464; c=relaxed/simple; bh=CeqI/CPfLt91GzhZXuIdCi7ZkDtyIbGKbbgMl5Idh5w=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=JEbZYunCiufMuP93QuHYGdkZzOHg/P/9ln57GlgGtSQblSnr/M9EbwwTbP7pB1nZ1rQ/Lgq/Jg6vZRn6+0xnWyO7EnjHCrxA5UpurfI3PrcUOxLoMe7cEDvDyL5Vm9KYG9guWlxaUUDbr4FUYjeWZXssNS27/8izET7R1k4KgMQ= 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-b0428b537e5so975752166b.3 for ; Tue, 09 Sep 2025 13:24:22 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1757449461; x=1758054261; 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=zxdlD9Z0X49cP7JCYN5rg4ONGmDsa0/rUnEhDLiPlaE=; b=lwKXwI8uMFlDycALRS43ygk76m4nNM9BbnrGv3Qmzx/dkEA5vC7Wo/Ug+Qff3ckn5p xMVGx/w9rWE4SmSf7F7YHwsCwb5zdGjABTDsTEzlRMp65v5X4hyDQTzj+G3C2CT+wIqK ZtN9Az0OiftX4EqqG0Jnhq2U910ijEp7yjohlsz1N3I+ygnxd0hBupPwdtBO3/J+XJ1h 5B/ZDv0yf9D0nsISrxpD7lMr7JBxGty7oqq+9Izc7w+LVRu0+KKCqbJCP2BmjcqQbctQ Uv1114wH3CP90jehiqYfnI9sZ2H1ZwSkX09ddF7Scq/19lN4h6yNd5LzUIWZW4GsnwMM 8bJA== X-Forwarded-Encrypted: i=1; AJvYcCWhnKjOqJB+ky+oIrUxF3XmVr46+x4mRV2kWezjUN+FyzW9p2JmjXNC5kliNkjlPNjnmEsc49MLaFSpJjQ=@vger.kernel.org X-Gm-Message-State: AOJu0YxwEyAOuXZW0w3SIFICUfLwAU4Yud6n542Wpp5ZMzeFRVS0zJAA 9zfFXkPBaE6mOA2mU3/ewxy0znO7L0OLGfg8UXFUlxB/iNUMGsjT+mxt X-Gm-Gg: ASbGncunTvaORXuKxF3D2iYurVOdZNQZSfzAqG36L4U+8HVCIifOvzJ49qUBOtWNwHz A3hXCYMKvFKUkQ2RfgtZQONw5ye8PVqFcQvJv6NGGT9nHm+ISYt7W4irNgAfECHHc30VY+u1cUx EDK6tggqjBlOp+ld4tz3dwO+IgxeoJmr/BDFl00mKW3qVHhL5hGlFeZ3MrYluSwLuBrZUxSPM6z 81fv9Ql1BqMyYgito3Xf+9hCyYw9v/Z6kaxQp3pEHhbvWFe5f+XpWxY00CwfTYJpfxJRrIIrn6/ tWLDE4iXYXOE9XP0EbTIpgKxk4wsSmvBCNb3VZuoZpv3gNsNcCPQeMfGNXl6fCHblct55K5zD9o kwiQnjs53IHs0eZlsWpL+ty6z X-Google-Smtp-Source: AGHT+IEvHg6ejivcaH5NOdw4MTljYAZ8L8hvnXX9lNaDU53Kn6RN02jfK8C0gO6q+DPkiefz+t81NQ== X-Received: by 2002:a17:907:2d25:b0:af9:a5f8:2f0c with SMTP id a640c23a62f3a-b04b1476a9bmr1169147266b.28.1757449460980; Tue, 09 Sep 2025 13:24:20 -0700 (PDT) Received: from localhost ([2a03:2880:30ff:70::]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-62c0123f0b4sm1723412a12.24.2025.09.09.13.24.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 09 Sep 2025 13:24:20 -0700 (PDT) From: Breno Leitao Date: Tue, 09 Sep 2025 13:24:01 -0700 Subject: [PATCH net-next 3/7] 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: <20250909-gxrings-v1-3-634282f06a54@debian.org> References: <20250909-gxrings-v1-0-634282f06a54@debian.org> In-Reply-To: <20250909-gxrings-v1-0-634282f06a54@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 , kernel-team@meta.com X-Mailer: b4 0.15-dev-dd21f X-Developer-Signature: v=1; a=openpgp-sha256; l=1540; i=leitao@debian.org; h=from:subject:message-id; bh=CeqI/CPfLt91GzhZXuIdCi7ZkDtyIbGKbbgMl5Idh5w=; b=owEBbQKS/ZANAwAIATWjk5/8eHdtAcsmYgBowIzuUfC3DsAQnBWfYk7VdXnbHJW09eWCxff2v A3+GGnwHWSJAjMEAAEIAB0WIQSshTmm6PRnAspKQ5s1o5Of/Hh3bQUCaMCM7gAKCRA1o5Of/Hh3 bWLDD/0d/6UdWDw0+cg3R92uXrdEy15HzJSwVFMzYSpA1tqbyQMvgx8OExFarvkDRtv81W/sq6V uH5tu1xdrpKjl2W4JyYvF7qyICgd4KM0YF9yMwQN3QJzRBRMbadbIWCeKBppbZod+/E1NrsSDNZ aGXx8NCh/KlgB/oit03vjvpdZ/wkjUqn4MUdDfoBTgus6Klphy9AV5mOgjxMfneVzeOjrRbiK96 rHuZe9Y8D0lnTExxhyD2gbW8VycW5ROTj8hk5JxyEWCvTWrVJNxHT/4q2c6sI1sM1Z76sTlY1kg 4IBUv8wHr6TMRNBXtBpFqDpo/sa5A0s98fiCTac3olIj0gtEhqBCnk5hr+ZLY3vAt70o91jpxBv actYxEgYyZf2p7nmBg3smRydIpDNIiMbgJgZ8JIn+RodQCpR3T0zEc5h7mgF+m0BnEbFAUvPcFE jy4X2oEw/KEVqZiOEb8Ijvj5EiHYIMZC8Gj6hB/hQiVNWOxUl449EZRbZN2YqOhQktzAnPqZGVa GlB4gxAaTZlLl3YT5GoOtce03m++JV9kvqYLBXA0GFd10TER9CvIUX8VMkzYayBTBdTtzHrvJbG 6AeEdNl4ceS+JOJRfX1R/U8JpJmGz8sNi9xCgCEOhTtwaVAs7cRqVpGDiLhRGM3C+eKFmNNHeMq Tte36N9xHnwh9IQ== 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 --- net/ethtool/ioctl.c | 21 +++------------------ 1 file changed, 3 insertions(+), 18 deletions(-) diff --git a/net/ethtool/ioctl.c b/net/ethtool/ioctl.c index 4214ab33c3c81..1a9ad47f60313 100644 --- a/net/ethtool/ioctl.c +++ b/net/ethtool/ioctl.c @@ -1216,7 +1216,6 @@ static noinline_for_stack int ethtool_get_rxrings(str= uct net_device *dev, size_t info_size =3D sizeof(info); const struct ethtool_ops *ops =3D dev->ethtool_ops; int ret; - void *rule_buf =3D NULL; =20 if (!ops->get_rxnfc) return -EOPNOTSUPP; @@ -1225,25 +1224,11 @@ static noinline_for_stack int ethtool_get_rxrings(s= truct net_device *dev, 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, --=20 2.47.3 From nobody Wed Sep 10 05:18:53 2025 Received: from mail-ed1-f44.google.com (mail-ed1-f44.google.com [209.85.208.44]) (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 0D8FC35FC08; Tue, 9 Sep 2025 20:24:24 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.44 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757449466; cv=none; b=k1Ut+v5QH+WoISsm9RxZa+M2Vl7q1pHlEV5lRyHL6hpQjCNrp2+wwZfNko7FWrNjI1W/IqQ2qPg+ccLxDTHVC+rq/KiHZ6W1d2CWGPR55l0ZxC/Ol7vuD6+WwQswWCNghsq8TeYtrcVudgef9S3m3EUGxNN53pbEgs2Nvc2VoN0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757449466; c=relaxed/simple; bh=rGTyoDxW6dniJq2uBce02DiKwlKe6t3Nu1+QaklK9bo=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=gf/D/QJQ+OnP5STFP8MI7SdmcwKFNPZN4tnTRmE5IKB8JiobI5H5C1VYfPNghebG1LDpRqzPdKvGnYb0IKn0PMcTciV75VQsNq3iEA+iWuEZK1qml9SLy3CnLYN89FIofivY1TnMVzi8Hkrz1caOFPwcNohtgQj/D+3bdEqJCgs= 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.44 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-f44.google.com with SMTP id 4fb4d7f45d1cf-6228de281baso6645109a12.1; Tue, 09 Sep 2025 13:24:24 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1757449463; x=1758054263; 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=D2IZLnKDaaFnjY3D1IJ8KRAITDlxiLL3yuBuxLzbLqs=; b=Xx6ayioCKFr4TiwerUkS4387WPs8lqVo7K+6ZqcXQv6JSe5dE+XAGv4BwF3+QmxzH3 CpySKERuIpxo7OvkOQi1By0IT3BmpyDW+5VNZ0AHz0Ny/dLbOWXQ3dbrC0PYj02eNSit S+rIdNtxDmgCtmxHx1jT33XXKkM+e07gCRzevtp4FNBsap83IMTMNuhc98hWaGUzbGYV OHcwJXyg3NIcnr4/QVKeQt/AP9D7WzeWWeVf2IA1OBAeuGV7vgBZyXgfYEEzaXvuqjBv 0d7rPcZIuG14lDSl2lLPAplGi/IvAqGbpFJ71OrSjnxjxqbtu5Xt28qya/I0vgwL7/ck 7X7Q== X-Forwarded-Encrypted: i=1; AJvYcCW0hJ7KGia4sJtIdF1BCs3McUXbE3Va6RzisytoGUqIoMdbKmJ+TwBd8b2Wsj+r378lAnOcdTOZnah4kuY=@vger.kernel.org X-Gm-Message-State: AOJu0Ywfx4tnSASY275q/GmAMhrMF7Yyod0vqHM6ZGOhVx3T+cUxokbT AKgfbmp6hDoecUfvqI+B/+g0U5dUKL3ITiv+qJpfnRNV52srCaU/O5QC X-Gm-Gg: ASbGnctbN3tJSY0G3NcFrxiAk81RVJPnMYYQKH/TWXuLUcjVD4qrnlkNfNo1oMFAx1q F5OpwGPSn6LaTAGnVaw7zXLj/xaD+SMvRy3pbni0exV9bhxWzmY0tuJ3J/Nfbbi1X91Acg2IVLo O6b1hPuS5q6b5IxFLrMBE9D25A8XTFvxgm5RJs1MxQ4WWgu20xv3ML7LUYICE/LYZP55XrF81bd +FeEgKridnWo5+XkoDo/ndZS0orR8Z8l6fyam/6FJELTsVdXdytWxFsA4rDEkJeeBn7/gaaCWZz AwZv+wT2cA7jJTcr5OuerBnMEfy6FBKnk53QoSHDP1HNhIyFZiFtNokPUYteNNuC4AEUYzcgwdh E5QexXY8/MuYo07oMqNzL8Vjh X-Google-Smtp-Source: AGHT+IH+MixYnWFpW6gFxe9vfM/NQEh+mWmrjwj4RiBDENfb8FMlO0RFTY1TtnmjZU+2Qmj2UKea2Q== X-Received: by 2002:a05:6402:20da:b0:61c:f56e:6cc4 with SMTP id 4fb4d7f45d1cf-62378ff39e6mr8397823a12.37.1757449462440; Tue, 09 Sep 2025 13:24:22 -0700 (PDT) Received: from localhost ([2a03:2880:30ff:71::]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-62c018007casm1844239a12.35.2025.09.09.13.24.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 09 Sep 2025 13:24:21 -0700 (PDT) From: Breno Leitao Date: Tue, 09 Sep 2025 13:24:02 -0700 Subject: [PATCH net-next 4/7] 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: <20250909-gxrings-v1-4-634282f06a54@debian.org> References: <20250909-gxrings-v1-0-634282f06a54@debian.org> In-Reply-To: <20250909-gxrings-v1-0-634282f06a54@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 , kernel-team@meta.com X-Mailer: b4 0.15-dev-dd21f X-Developer-Signature: v=1; a=openpgp-sha256; l=2914; i=leitao@debian.org; h=from:subject:message-id; bh=rGTyoDxW6dniJq2uBce02DiKwlKe6t3Nu1+QaklK9bo=; b=owEBbQKS/ZANAwAIATWjk5/8eHdtAcsmYgBowIzuYoiI266NQJivEzOImBy90y91SA8Qpzjtq o+oo9gYATSJAjMEAAEIAB0WIQSshTmm6PRnAspKQ5s1o5Of/Hh3bQUCaMCM7gAKCRA1o5Of/Hh3 bdZpEACNDpPB09wwGkIfB3pH5t3fLtmFhnkPo7FtOEylELfYNJClbh3gzCyJ2O+NL/Nx/+efo8N DZHV29CKiG2vl1z4r0kmV6FYY9wb023QRAP/3lcEdgWVF7rrQJ+dkfAuHp985u6pmu9jvJfHzoh lcjIFTEkFVCCDUwzfvtXDEstzB+oKtWFs9+z16EO+l+EsckiX4AcLmwViVPKQnDubosW4nAamJ8 DkGCutDGKd7cbthzE+8EOZK9JNz4CiLFYBLm7hxo24Yx4H8AG5gUq/KN2RIO93v0buHvFsAEtX5 nG1y0zjZlFJgT+oBtnQVh/nbAlHJcNI+iwzIWDLJ7gFsP/3B5nWzk47EAuQxKAG8yT6G09K8waj 0TNA+5dAzKoEa0c0lgnvQ7HzUCTuBu+26CwByzV7EU4XqYSukHxRE8+kpMmXyZysaCw9HlN6ix3 77CczJdAqa/+1aUVn9yJDspMuMJ0OjZgM/Ygy4fzZ2b2WdI66V1gBy+4pd5ZswMgnhEcmdpWUfL L7o1E84GVmpn58Zxz1Oqz/XFakzX/sA+KyyWTthPvRPfDynK1iE1cyUEJVS7HnTW9bUiXXMJuit Zl1MqeHxs9/k70Ha5fyPmBpHmV9qbRhJX8/PfuTsaO2hrIvJG8nmr3rQy3A2pbsimTadUxPyvIH NCQRlrbrc6rHgpA== 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. Modify ethtool_get_rxrings() to use get_rx_ring_count() if available, falling back to get_rxnfc() otherwise. Signed-off-by: Breno Leitao Suggested-by: Jakub Kicinski --- include/linux/ethtool.h | 2 ++ net/ethtool/ioctl.c | 22 ++++++++++++++++++---- 2 files changed, 20 insertions(+), 4 deletions(-) diff --git a/include/linux/ethtool.h b/include/linux/ethtool.h index de5bd76a400ca..2d91fd3102c14 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/ioctl.c b/net/ethtool/ioctl.c index 1a9ad47f60313..aba483bc9fd85 100644 --- a/net/ethtool/ioctl.c +++ b/net/ethtool/ioctl.c @@ -1208,6 +1208,22 @@ static noinline_for_stack int ethtool_set_rxnfc(stru= ct net_device *dev, return 0; } =20 +static int get_num_rxrings(struct net_device *dev) +{ + const struct ethtool_ops *ops =3D dev->ethtool_ops; + struct ethtool_rxnfc rx_rings; + int ret; + + if (ops->get_rx_ring_count) + return ops->get_rx_ring_count(dev); + + ret =3D ops->get_rxnfc(dev, &rx_rings, NULL); + if (ret < 0) + return ret; + + return rx_rings.data; +} + static noinline_for_stack int ethtool_get_rxrings(struct net_device *dev, u32 cmd, void __user *useraddr) @@ -1217,16 +1233,14 @@ static noinline_for_stack int ethtool_get_rxrings(s= truct net_device *dev, const struct ethtool_ops *ops =3D dev->ethtool_ops; int ret; =20 - if (!ops->get_rxnfc) + if (!ops->get_rxnfc && !ops->get_rx_ring_count) return -EOPNOTSUPP; =20 ret =3D ethtool_rxnfc_copy_struct(cmd, &info, &info_size, useraddr); if (ret) return ret; =20 - ret =3D ops->get_rxnfc(dev, &info, NULL); - if (ret < 0) - return ret; + info.data =3D get_num_rxrings(dev); =20 return ethtool_rxnfc_copy_to_user(useraddr, &info, info_size, NULL); } --=20 2.47.3 From nobody Wed Sep 10 05:18:53 2025 Received: from mail-ej1-f53.google.com (mail-ej1-f53.google.com [209.85.218.53]) (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 9E57935FC07 for ; Tue, 9 Sep 2025 20:24:25 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.53 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757449467; cv=none; b=PUJhfQCThPxrhZ7M1o+zLnBzKI5zuwP5aaxtPBKo6HmKdnISxtVVh4GWA3Q5twj4yFkUWjo9o9gPS9W5xclp6+cKGvUmtj3J7e3RTAvtDze9KVankDvJjG475d0lFsJgY/WYD6n14VxpqThs4AVQOirHtCO/He/WjSVhyrrWzh0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757449467; c=relaxed/simple; bh=HinHwRyIkL/bUH0IHaSksm26uojiJmGw89oGqZe5KEs=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=R871A2yAkF/aPLwn9mI6HX4lMWThKhdBWQRDorQgNwyrtL/IstXGtw24Mwc6gdZx6C1x8Gkxjp0MZ6vGkSAxiJG23Nljenkn4n609aMvc779cxwB2TRUY+w8mAlUX15rvbU9/yBTWRSUXEn5c8FwpMSvE/M+NdZt4EF1nYm8Shc= 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.53 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-f53.google.com with SMTP id a640c23a62f3a-b0472bd218bso935927666b.1 for ; Tue, 09 Sep 2025 13:24:25 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1757449464; x=1758054264; 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=XlgNd34WwD8szRp45UOqwQH50pjYmEpv55onwpKoXk0=; b=G0xMdhv/RSyRIthCszg6PVnIuhFOB9WLQ2ym6CwRdBNh3OUHc+jW0oDRH/Mism/Tmu 3pOPEBWxRIPEfhNdJFktvMdDVy9vNRRHYu2Pv4AvczXcYxfIAgG2fMUGinVl555ld3ev ObFxlJqFFmOuyluIvgj8/eJER4ikopP6zwjORr4wLNGdZcmWYFiGi5OzgRb9iJEL/cQy 7z2RUorEmV7vljHQRj/VVMGKYwByjNySSBg5UjeJTzGMGoFXJzVWLpSfMKnxcCNYsriE xEXVT1W9zGvJYH1/JPTG71oMlwpS5N5FSDWdY6A8ADeAtZxJ72/E1wNk3gpeDpOH686M wAAg== X-Forwarded-Encrypted: i=1; AJvYcCVrFdpBj6jsEVAEU+Zy5uas+Sujp1yWd56niRyBfJFC67aO/4jY4taVz5S8i3ibF7m9CDtFocP3HF5oktc=@vger.kernel.org X-Gm-Message-State: AOJu0YxXPiVbvdSICD7mkQcspLcfQxWg2RLX+Qd2w2hr3AywK/qNw2H5 5kNcSq8P+At8LXSfoYHs8g/xqa3EZ+o23PfdsCaYGjIpB2guDVlRNFqN X-Gm-Gg: ASbGncs7r7qxHer8BAQQoCO3UiIgcFOlheaaFZs4fXBAEL9Cpwh7XsWCKnfgcZOpyix NZw87RgbaogJruZ7hNtpAWghF7JI2jRKkwtOwV1+GhExtusuouPfRIDX/hdhSnFdgDn+y9OaOkM +whM0TF7yft5KaOdyE6QAAwb0jkGskPE9TjfDOHBtt5dJvEe8cAj352vzM+8MmcLaG0eSguRhni bVAH4ONZd6b0jOIZ2qF1MJ0ShgKlhdm+/aE4psAv1nmM+N/r4RQHKgZtpQ7KJgD97vn/WkFKbq7 FzfSl0ehlR2qhIbI7M3KFHolpqoF81ajd7RnDWDibz3Ariwipgy7zoSdDhl1ev2GzuhqkOckexy /yLNAmo0MJgvZG5ItP3HpajFlOdv5pS3T0w== X-Google-Smtp-Source: AGHT+IH3pF8Vy4sZg4snh8qN46xVYLqJzaGCcuhqSAUuKPwU+XxCWEAlk24h6RhAFoFpj/Q4RwQVWQ== X-Received: by 2002:a17:907:94c4:b0:b04:3c00:b934 with SMTP id a640c23a62f3a-b04b140d070mr1259321166b.21.1757449463813; Tue, 09 Sep 2025 13:24:23 -0700 (PDT) Received: from localhost ([2a03:2880:30ff:4::]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b07830a7598sm47463266b.24.2025.09.09.13.24.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 09 Sep 2025 13:24:23 -0700 (PDT) From: Breno Leitao Date: Tue, 09 Sep 2025 13:24:03 -0700 Subject: [PATCH net-next 5/7] net: ethtool: update set_rxfh to use get_num_rxrings 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: <20250909-gxrings-v1-5-634282f06a54@debian.org> References: <20250909-gxrings-v1-0-634282f06a54@debian.org> In-Reply-To: <20250909-gxrings-v1-0-634282f06a54@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 , kernel-team@meta.com X-Mailer: b4 0.15-dev-dd21f X-Developer-Signature: v=1; a=openpgp-sha256; l=2167; i=leitao@debian.org; h=from:subject:message-id; bh=HinHwRyIkL/bUH0IHaSksm26uojiJmGw89oGqZe5KEs=; b=owEBbQKS/ZANAwAIATWjk5/8eHdtAcsmYgBowIzu4z5A3Tso/HmRI6tV2dYxlJ6F912wdfJBW XjI5tvzsOSJAjMEAAEIAB0WIQSshTmm6PRnAspKQ5s1o5Of/Hh3bQUCaMCM7gAKCRA1o5Of/Hh3 bcMED/wMPeFm06J55xDZwYBTpb+Ozu+iLQKa/RieuFubAifpjD/f1ZISIoAA9xPPdUpIl2vLXOv Jrb27DU2QKU4KUWNGIqaMZ84Y7FKE7wRHjqNPJnhohkjO0ed13bCw2joBNLXDakSjJnUXQz0AfO DgNfZ0VCl9MueIMFkRmV/v8gJe8Z0mN8VmrQiQ2LbbGGvYyQ7vLvCIkYhr5XITXucle2EqJysmw RncNAKzflTMsk5KvRQIw3REZKy+8Ld1TD7GzxsPHP8bX9y37OcStXfxSMqvKGB0Be6n4O9xo4d6 KHjiI0DMiulKSGyuIwIXRg0Slf5UgG944fnvgVKHTA/hI8CajRBc2u/QQhmSLiK+9izJRIzdv3u 7DHtvCgpN6lBwZZtTZMsBxuiGAwFYNzepcmFDrZ8LOlnNB6CM/DUqIJCd54lWkuWo9gSFOY0Av1 btGc0xNheD5fGMSZTWc/ytMJAZPjdU0dFnEfHze/qIT0q2E95otGjh59shA+kdHzEeQYU61BYRe fT/SaKSr9P9mJALPZmexsPfl4podLA9O7N+ok7OhNrpm/xiwU2DDDG9QIgT//27BNhnHZDea6jA OqEMSIuVqH1J5DtMNy3oPBtxPYPAR+f2aANeu1pA5cA+UDbl9AAZ0OSL7qBTNFreGKorOilTIkL NAotZRPeZm4dhrg== X-Developer-Key: i=leitao@debian.org; a=openpgp; fpr=AC8539A6E8F46702CA4A439B35A3939FFC78776D Modify ethtool_set_rxfh() to use the new get_num_rxrings() 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 --- net/ethtool/ioctl.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/net/ethtool/ioctl.c b/net/ethtool/ioctl.c index aba483bc9fd85..227083a8ab860 100644 --- a/net/ethtool/ioctl.c +++ b/net/ethtool/ioctl.c @@ -1545,9 +1545,9 @@ static noinline_for_stack int ethtool_set_rxfh(struct= 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; @@ -1608,10 +1608,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 get_num_rxrings(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). @@ -1624,7 +1625,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; @@ -1636,7 +1637,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 Wed Sep 10 05:18:53 2025 Received: from mail-ed1-f43.google.com (mail-ed1-f43.google.com [209.85.208.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 0EA533680BB; Tue, 9 Sep 2025 20:24:26 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.43 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757449468; cv=none; b=JCT1zbi9D4NmPPA8aRQSmyokR3DpzqZST4VZh0s1wCsvp2uitMkouWMJxzanAOhvg1mo2qfnnO2F+5sq1kVtFReOQ/yyzTm63YuRZXxr2V7uAWVnaVjFXRwJiSYCj4MgLgQ/e8HTaztmuyRqBbHN/D6+11DJ5wu41NxLGbI9ZkE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757449468; c=relaxed/simple; bh=ENDvyCmUouEMWnICcAv+9Wpzcckm7yI6QkORwP1oaSs=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=NOxpKY6DuHIzlmyPftC4qwFjMHoanGlTdPXrDESuridvWO8b204OLxYNoXgPo3YciTyru95ZekrUJGgtTBm8m5xa7sjb5oh9g5WKVC/od+dqCBgRm2rjyWON2CTEWORxr7ocDc+/62vm4OuMYrn9bMnSCeitRHXVcRKYKIT9tPU= 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.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-ed1-f43.google.com with SMTP id 4fb4d7f45d1cf-625e1ef08eeso6793844a12.1; Tue, 09 Sep 2025 13:24:26 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1757449465; x=1758054265; 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=z7JcA68BWflQorl8L4XghXGtMkRf6pndxKlj7EAZeO0=; b=n4DyQnbiLVEpPhMMmP7d3TpTeTgkgIavW0/SkhB1JC3D/IN/YxJjcWfGMSrH1xEfsX xxJN9B984g0HmAJKvzxasx1KLV2wWa4aM5XOU0YlXOq2mkFj1JeDM1m5hnXA2Qo/GWAQ YJ2rVMVKGWOdMKpTM5pZKP0/NKvJUdnXiTHXCoD6r9TVYKXJTxQ9wQQDYvEQTethXyEI ca2XpLOQOIWBsjJapTLW4PLf8QwOc3e2lwxRUFmRvZD1RLVRlf+xepf0DxLRXEJx0zB0 Q6QOq85psqQUvxJ6Wry4t2cTukWiOvng2amKd7roCeir7REIH73lsKZCxQp/0nrUUcXd P29g== X-Forwarded-Encrypted: i=1; AJvYcCVSXoD7qUpmqtWwTTA/cgcX9ldrNf/k8jhnOT9oC8bEx3AwwtTKQjHy3OlKzAdZSqjfhOK/FHVhnQs49eA=@vger.kernel.org X-Gm-Message-State: AOJu0Yy+/DHVCxwEmlfmvjrPSwG8MuyfP0reKNLoRpAAEpmUEEfcQbHd jYgc3B1zJcGlLKyDvtqD8SgvTvEMlUWOKuXccf95FS8hkfYSZNy9I6Hv X-Gm-Gg: ASbGncujdB4K+oIgcC3D7QEwTaMtz5mus2usSU3UzRNP2Ta+xZaWtj7LNEn0Vdo1N73 1hPI1C9oNZF8KYnIvOpi7TbwapL89Uks765ijcxT5Z/l8dBXdWsfZZMYP2ymFPv3qFE/J0DIZqh bpRyYaLTJVk1+xqsClYDmBzOuAIZjbc5bZJhn1ksNUJ1yEUlEhD1zqPljc5BNELiTJh0kEaMuHu FpLB+VM8bCO1d7Y6LhgxH02RDfb8JX7BewQoYbsbDpBZ8VHMrk3kV0Aj7dysI3foO+Gzg5NmV/0 WNRAvenDJFqrWfqBYWI8volwufrMrPKWZwcXM7eDm9RAcZhxpo+lKp2JDPQnFA5k5mK83SfOQQV FujGwY560ZR9C X-Google-Smtp-Source: AGHT+IHIw3iPKDV1vWderLLpj7uaVewGmDnXc6kNSwmivEEBZBMQGgXhlB+h8hbRz+EiHpgTlyf1MQ== X-Received: by 2002:a05:6402:a0c1:b0:622:dccd:5bc4 with SMTP id 4fb4d7f45d1cf-6237b874019mr10592451a12.11.1757449465197; Tue, 09 Sep 2025 13:24:25 -0700 (PDT) Received: from localhost ([2a03:2880:30ff:2::]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-62d4dc1eeebsm28202a12.44.2025.09.09.13.24.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 09 Sep 2025 13:24:24 -0700 (PDT) From: Breno Leitao Date: Tue, 09 Sep 2025 13:24:04 -0700 Subject: [PATCH net-next 6/7] net: ethtool: update set_rxfh_indir to use get_num_rxrings 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: <20250909-gxrings-v1-6-634282f06a54@debian.org> References: <20250909-gxrings-v1-0-634282f06a54@debian.org> In-Reply-To: <20250909-gxrings-v1-0-634282f06a54@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 , kernel-team@meta.com X-Mailer: b4 0.15-dev-dd21f X-Developer-Signature: v=1; a=openpgp-sha256; l=1775; i=leitao@debian.org; h=from:subject:message-id; bh=ENDvyCmUouEMWnICcAv+9Wpzcckm7yI6QkORwP1oaSs=; b=owEBbQKS/ZANAwAIATWjk5/8eHdtAcsmYgBowIzug3YaluYZkKF3NPcSGVE9em9x8qbiTColk fhKtXemXDmJAjMEAAEIAB0WIQSshTmm6PRnAspKQ5s1o5Of/Hh3bQUCaMCM7gAKCRA1o5Of/Hh3 bXKbD/9tNekNDHm9beR7j0Fv1+YjyqCdq++2IeYemh42nNxcQkJN4njUvqu+Yqe/u9+N0LY+eZb c3aB9+UdyD2v6InGMWwk8KSqcdSovRJ12Sk3egJfs9cwtEnUtNqYMfx59omp5wRHWZ5mNFj7ZAw 3FDnDFTgkUQg3kBpbDlOunouS2B0CKcCfHGBUj+N+H3MzUZ3PgAcQXNny2QRiZVhYSnUo/SBTJC ogJYoaiWiL9TZMIJWTdhN489YGb8bTy4q5cyEQPKMFnx9sIcj+OZTrWNivbPtTpH4mz1hOdkh+q ToEduQlgHAjaaraRCg0I8a/p7fCZlrpiGKN/dcKxC+K7YjMnr1MXIj92pxIFaNrBZbSddkt7DIO mZ8pVdcXvssUlYMGOyh+E7Wz2yuuiUVx0lM2Fz1g+c36ry9v6r+4CJrNiREjHvh/XpmCpArujvl gnPbrACmYv7PSAAheSZcEM0tkZn0csZfQZAzDIJBGRSvDQveiW2P1Ckm1O/mhsbgoB3Z+GITvmI sFnmjUCfV5tGfJVV8cFTdBr7E7UOhY1fB2kRr6sDejgrL8//wF7cLcgaYTUqxLsozUNNN1H39mX G13I9GYPo9AuZUme5taent+0jEtmH8PA217vTn6VYzdK/jgB4NFEOPattk4G4r5hwiwDVsHzD33 AxHXvjeUOriAl/g== X-Developer-Key: i=leitao@debian.org; a=openpgp; fpr=AC8539A6E8F46702CA4A439B35A3939FFC78776D Modify ethtool_set_rxfh() to use the new get_num_rxrings() 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 --- net/ethtool/ioctl.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/net/ethtool/ioctl.c b/net/ethtool/ioctl.c index 227083a8ab860..752f185d2d7ea 100644 --- a/net/ethtool/ioctl.c +++ b/net/ethtool/ioctl.c @@ -1364,7 +1364,7 @@ static noinline_for_stack int ethtool_set_rxfh_indir(= 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]); @@ -1390,20 +1390,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 get_num_rxrings(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 Wed Sep 10 05:18:53 2025 Received: from mail-ej1-f45.google.com (mail-ej1-f45.google.com [209.85.218.45]) (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 4A56536C082; Tue, 9 Sep 2025 20:24:28 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.45 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757449470; cv=none; b=Gi4JzivoTglyYstm5/a8820lU18wDWXgxGokLBiH3tknz+w5PI8UNEu9BWKUQHaN5cwbgEN5yKyDY+RVqEwnOsnJgmzWEhTGNgzZx566wWLLNPB3wfqaTBkPTVoYAyVVXNhEgdXNBCmM47QmebccFDqY5kMfFzmFGzZFvf5H16g= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757449470; c=relaxed/simple; bh=Y2hXfnHzSfKGpkRV/+ZGUekIkr1Gt4/QOQoMmnAXviE=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=urz24ieOw2sC6fqJgbqbUg1S2yHpq4FAkdbWanOXixrTJYTbnrdVVj8sL3jt/LuEBqYtGcNkQC8px75z9Ih49duziEO51m7OxqLlgxQkWM7h/D7yq7EOqVMSlFsqCcUu2v+ogzXh7KwdlDHfHvrH9OX0dHPqms0OdF/XNH3I2dU= 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.45 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-f45.google.com with SMTP id a640c23a62f3a-b00a9989633so267200366b.0; Tue, 09 Sep 2025 13:24:28 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1757449467; x=1758054267; 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=n0gIuHH4FHMvq9oSF/Jigf17pZ9LbJklvlGco8PAXnY=; b=qy/iZYE5CD933wCLHvvoxh9+ItrPHaDI43t4DSQ9tqg3wIaYsI6dzChVptxM90MJLs u5uyqwJl77Vq3dm+PGR4Wzsa9xqrxq3bgSxFtx4IFOBZ0otQr8OT6nk1yUwWq3dmR+J9 ouSRt3VImYTvLtqdSM1k4s3YQGfxoydY9adny3O7KfMAdInBQ9EBWv60viachcPPWFvn k2CP7SuOOQDswme2YfpWctSFdvFgwWxuYKlEujYOS6DwHPHZEjWdQORvcr6C+kCJFZlU 6WkySGFaWiLyi2LYniBnKreYeKLqqVA4cil6KN7Rd31vgjC9jPA/bJl1UEc8SnUzDaS0 HGXw== X-Forwarded-Encrypted: i=1; AJvYcCWdTWa1537XaZ/xpsPokUlNyNmVrCBGGEOWeKyQxMDe72E4PAnXMM9nat8kkHminjlpmky7wLdwFx2HBg0=@vger.kernel.org X-Gm-Message-State: AOJu0YwDRfgjwFS9fwkuisVmkNxHU1xk+kgQU3Q0cA+1/M8zpmVRoCyS aI0zV9TbPg6ABiPlrkgxmy85F0r4RMr4mv4jPPdo815IvJ/xpkM+wAz7 X-Gm-Gg: ASbGncvT6R8/sEIt9plx1YXgmEN7vYi63MNuDU5FdFWO3Aj6Jswa4QiuJ//cx0+amga 66Q+2cu+hdg1QRgiWJJP76NEUwcWy5pooXYTAyXREq3+PuQN4Ub98Sq5zgDphP8Nndss0O9EVgY BdqwH/Nfl8JgzRrlhWuThRo78lk2iarhBusZZBwrPkMngTp+PIsOUuKJU5/G0mmOOI00ypsCHzy /94/kv0N/3hc7FqDvVxMIKMjILb/lIvg9GLGibM5gpyHXbNE1aZ+viCXpSZ1Tiv1kyWleeYF6pa iBkpjitlDfmhOv6LfVxnD/OfEZ2r0F67EBQHcUDhZrv9FLfIW2+JUfWteJtmriRAZ/HPoxL45P7 mx2XSm5iE5JOM X-Google-Smtp-Source: AGHT+IEK3ZoFj8QYDAr4NlAPkp8aJUwqkx0FN+bwLBX7AEho7EnU/rHebPmVDrI+BtfXZ8uN0GJ4ng== X-Received: by 2002:a17:907:1ca3:b0:b04:5bb5:2745 with SMTP id a640c23a62f3a-b04b1f0cfa0mr1239911266b.21.1757449466569; Tue, 09 Sep 2025 13:24:26 -0700 (PDT) Received: from localhost ([2a03:2880:30ff:1::]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b07830a7598sm47470966b.24.2025.09.09.13.24.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 09 Sep 2025 13:24:26 -0700 (PDT) From: Breno Leitao Date: Tue, 09 Sep 2025 13:24:05 -0700 Subject: [PATCH net-next 7/7] 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: <20250909-gxrings-v1-7-634282f06a54@debian.org> References: <20250909-gxrings-v1-0-634282f06a54@debian.org> In-Reply-To: <20250909-gxrings-v1-0-634282f06a54@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 , 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=Y2hXfnHzSfKGpkRV/+ZGUekIkr1Gt4/QOQoMmnAXviE=; b=owEBbQKS/ZANAwAIATWjk5/8eHdtAcsmYgBowIzuzfaQzetsofrcRbpnwuLrO1D7w86wY1TTU lrqGZgmCpuJAjMEAAEIAB0WIQSshTmm6PRnAspKQ5s1o5Of/Hh3bQUCaMCM7gAKCRA1o5Of/Hh3 bXNZEACcAE5R231Z7uNnKiyv2RPO6hJXjog8YhKoP/yzmIshYPJ0FAh+8o5piRpRtM6dIn3qeky Ve1yQ7Aw/Vn8l55/nTiEZPX665GmRsqep7Gba1AHM+74XOC+97c0zEQXxid9b+gICQ2Sstr7hbT soSkCyNxLHjMgPxyHxw0/L+GSL4cBJHIQKMvR+6uDBCNcZh9wYinG0rGorRBHPj+FCkX51WtHCp wJ+furxV5a/tIdO1ApWgVUcqhomico6t2mIziLg6dSgwljOTRH2bKpmwfhz2Z79sBLtNIW938GO 6EV6K3X5TaY9wDymNRCMAHARFqNJFpBmdQcMRbNX0p+EP2jcpseYnh3XYx7rEwEdDC70lyYpdmP LSZrKK/bEAJq8ZhG9ONl0+B2fHP9xLZH+xNIXamgSlk6h6HASJ4mbrfpnRch4YmCQntT7asuCiM s41BTaQndV6gaP/m2Fyk9ByczEjdYeX/JRMg/VdlZUcppBm4q9VLrz5bTLji+suZPduq602SWhX rwDS8GDkRdHiUEB+Hc3JaxEVH5mSLPAxuQp84S/nkv7VVuQFgD/dPlaDTkvUK8X+rlOfEjb2TB7 ZiI2uaLp8RpXRA+oz3+wnuVuWJ8gWcp//voZ+HEDBzlZpHcjLJ71zUzypcZXd6Zo4wZXP+2saHB NTHpOaRsFhQuJmQ== 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 --- 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 975bdc5dab84b..e35b6ef015c05 100644 --- a/drivers/net/virtio_net.c +++ b/drivers/net/virtio_net.c @@ -5610,20 +5610,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 { @@ -5651,7 +5642,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