From nobody Thu Oct 2 18:17:41 2025 Received: from mail-ej1-f47.google.com (mail-ej1-f47.google.com [209.85.218.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 09FD23176EE for ; Fri, 12 Sep 2025 15:59:30 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.47 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757692772; cv=none; b=P5cfeGOMRmSUsQ1RQghnWls/YMidl1brGIe19ouIHZCaWQJCxgN+6P3VdwjVgfy3O/RoLUNATDDoDWmTtnSajoKYSUKqnKjb89lGlCXhUdLBmqeLxyVSF9tf72sxvwQu3jn8x5AETnBfNZ/pA+FFx4pWBkq0cNQxU1xdoNi+4Mg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757692772; c=relaxed/simple; bh=LCDHUbohxTHgzzdULwcsi+67Tz4B7J+HXNyStYI9NJM=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=FL9QCrRwz/Bgr21uHrJ4FMUrPChg1YW18onH/wPkAPVPkkA+At4J/1M2s/lmK2cSj0ZEYsVZCvjZBU92eCmEXczdq+OVHh0n2B3ywQdSZHr8f3tdfQDst6WcDrwJXagXHdEc1KVqkXMzSVwtYkm6VFih4m9v9bsSSiUoTUsZPPM= 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.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-ej1-f47.google.com with SMTP id a640c23a62f3a-afcb7ae6ed0so326357266b.3 for ; Fri, 12 Sep 2025 08:59:30 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1757692769; x=1758297569; 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=tt5oLx6SIKlNyQmfYI4YLRYbCPwFoYv9Fn1NFzax48kDI1EmnrsAaf5HLEJXUsIvD0 hDTy9SfW1KD7MJoPjaMhjNe0iSEXCK5fK6wpuHLHhh8UdaJUc/yQDeT6UQxSqDNYAGSx O2NAOW2xut41Mmc3sM3hllJKH4MTdj7Vl0lnE7hsS5+iL8VMDosIntzLLPeYIj3wsBlm 1VghfzgFei3LzrzFUEt8J5KeQjm+mbwO/LkA8ZzmIXsAFBbtT3SjajdSLkgz6a1c5Y0q WtISZ+sP3bLU6tSYZfGGuYZvtrQuvAqSsQBp2qzg0ijNGBnqVp2rdsFbzkRR/SGJSu0N l0Dw== X-Forwarded-Encrypted: i=1; AJvYcCVI7DbtbixttbL+nLGvpVHbN8QaAT4DtEgd7DM0wE18pdJLp8C4u9suYXbpeZuO/tkHW0MC+GrmED1lDnM=@vger.kernel.org X-Gm-Message-State: AOJu0YwaRHlcvyTqsObhdkGOmTUhcDNlKFe8nh4Y/bNSxAf0Qe8lH036 Ll0wrp56vWetF5ebG5T0Z3Jq0BmhcMk7kkwx14iwuq6E4EDPEYvgYrYl X-Gm-Gg: ASbGnct0YpXa2/VjULMeFirWsiB86Vw3RYjhjCUsaHhIWp+/PEzW3MgO+5lfoyl3ViW lL4dinLV8W8DSAAhGOwCqjEl+M0NU8JY2Jvgc1Uf/xpyfwUQjZNLi+U8XSWhSzJ48jGhkHTBr/D 5OhNNVPjrdZAILuHRHuqKFyWYZxhZbWkKCA3Y2R7BUF9J6iSoD2B40b5siCL2nMnosq3dFri2Aj +O+tLWM5W2FrC125/CQwqfHFBBZ0i1GXD7rWckZAEVQbRXcjq7OsocqRwKwZ5ki8IXeI0slyagA L1Cq02XfFvhehhmzn3zpJQtF8vmPnCd1LSt6lJkyksA+Qi5lTHql9BGgfOh5CICHUJNTFy04lGj DnE5m0CQmvmke6a2Tws33zQE= X-Google-Smtp-Source: AGHT+IGwXf3cEKsabQt7Cpv//i35Dk3tdl2J8AgqN2uAsDXsRwu0qjGwDDuOq0Zb8pJ6XlFCPXpkVg== X-Received: by 2002:a17:907:970b:b0:afe:85d5:a318 with SMTP id a640c23a62f3a-b07c37fb563mr287369966b.36.1757692769279; Fri, 12 Sep 2025 08:59:29 -0700 (PDT) Received: from localhost ([2a03:2880:30ff:7::]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b07b30da310sm391317766b.20.2025.09.12.08.59.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 12 Sep 2025 08:59:28 -0700 (PDT) From: Breno Leitao Date: Fri, 12 Sep 2025 08:59:10 -0700 Subject: [PATCH net-next v2 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: <20250912-gxrings-v2-1-3c7a60bbeebf@debian.org> References: <20250912-gxrings-v2-0-3c7a60bbeebf@debian.org> In-Reply-To: <20250912-gxrings-v2-0-3c7a60bbeebf@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/8eHdtAcsmYgBoxENdgqKr9Fqt+M3KsL86YnjoIRFj5P6h9BlZB uvzTHP8ZW6JAjMEAAEIAB0WIQSshTmm6PRnAspKQ5s1o5Of/Hh3bQUCaMRDXQAKCRA1o5Of/Hh3 bZWsD/9ifi1mU7JfHUYLeM/FBblDRGtwn1dshElRb3dsckyN4Do12PHTEBk+mROTkHyOiYxqG73 jiVB3pO0P6M1TGvZqfrwN4AZoCWsD1/U66QJDwQbVBumxJthXRVJfWlrbhqgChCWw2/+cjEaY+H KbaZtTHHNrYlCnhExil8uKsHkQnVpKiWPe2yTwAfvq1tCOzyAPNqskm59VHesdt2uVirAFeWyhn zr/1rHRRWH+NoEZUxOEpuMG4OFgjMSdtt6yOQlABdsbDP5aigu8eMGCXoA2PrTPDjvaFuFwxKLn 5luWHIVPRD5F7zOu61nWpEjzC3sRbW1iEpFpt5Xwhs7MF8R3Tr+mNnN0dIdvjYXMK9XYGOl9ghX aZk0NpO5ZFq1IVwfFdovmudMo/iWo9DLzG9Hlyriyk45UR3Pp9wzZsjh9s0lCJjRhTsgaRSPqdW b3dEyQMf2TgMuoKBEZ43ghrlFVN0l+HA/3TZvsAO1zdphnET2omx04CFVxAV497gcanQNjXnk+0 Wdh8BZTfE3X8mZvGe4PID3f4aUwUWH/bfkZMtULEMKx5c+b+UCSRtL3vlR6wFlAaKn7fPuI98Jq LILPXp8tedMFLh3xUIZEzsDp6tNVydkX/R28E2bVGTbyPE4WfWbUfZ4ln9xEZHnrGKyN0MEHhrg CcUQMWg52gv4n+Q== 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 18:17:41 2025 Received: from mail-ed1-f54.google.com (mail-ed1-f54.google.com [209.85.208.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 8C8FD30DD35 for ; Fri, 12 Sep 2025 15:59:32 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.54 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757692774; cv=none; b=u+jq1pU/YXeBiPg6Ig/1bwNtuPGaQzQJzkWqn2hPpIXhZ88evDBpB0U9hpmi79ji0VuhBbcECdQdgqDPeDQ4P4sYeBPAQb7eREPV8pG2m4tKTKoU9WgAW3GEnkeBBZWE0c7hWGaZiIR56uIEc5LRxQRT62DM30Q3SoV2KAfwa4M= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757692774; c=relaxed/simple; bh=4qXNf5FPKeqB6oI1PmmIoli/4B/k2fYlPhoDMAj4Ltg=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=K0Zqs2Sds9GT6JE1wSczpcDX7cHJmOOr+miv+5kLf7ShsA+HsaeJGvbZmE35DSODhmDFa9lsqK8+T9uFN+Y+VevxMVpXMIC/0pkTCxPxG4eee61ODKYjwt4J2Oldxfqmkq+2V1bXfdn+p963JWodvkHr0qNwlo+N0rICjpWYCdk= 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.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-ed1-f54.google.com with SMTP id 4fb4d7f45d1cf-628f29d68ecso4197054a12.3 for ; Fri, 12 Sep 2025 08:59:32 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1757692771; x=1758297571; 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=PAPk5OEPudIXVZtpcFsNGSdZ2P52LhYCmoYxJz/Awxwkz53pWJ0Mn0YmrYWSE58kS2 SHcDD1efwzL1mh/xH57VKRy4v9fw8b+/T6E2YAiD05JpRQ3DQzUM2fJVFGrWcL7zYb7C zUjVxTVXWM/sqkXDChK/+BNiOReQegxqF97VPGg1Pe8B8fEUSPDzXuso0VQkcpaT2kc6 dBUHk592EbQznIKhD/G/0KOYaYhlrUp3YhbG2BAhSk3YrdCcC3xptwb+F2wtAyJKC8IJ IaslkqlCdHzGQdDdi0elgc1K6Lcc7gcXly4s9/pmkR2XcD1E7xO38ckQDVagxRPQGBeF y2bA== X-Forwarded-Encrypted: i=1; AJvYcCWJlRHx+LT0sYTxRvxTRPUI0SLY/EHAui9oVXJoqjyTnaGQbXPiS09gVvjlxlY08KyymLhY7dRTrXQjWOE=@vger.kernel.org X-Gm-Message-State: AOJu0YzcD+K9XdLx0hLfBHynqwP+HQG8Hti39gPOv6jaBTCx5NXRhOiB 01RxkinbJU//QijZzDIRyKkKFAmPBVwggf/UNSCW76vMKBmA5DFK6RXq X-Gm-Gg: ASbGnct6ugcGeTyIJx6EeMcNAsTZF86UUNmhXD4LA6Bc5s4M/inA8o5f7XYbJwdLZgd q+zVQzd733ZGXdVGXeCRWK+3pbfcMdWmv3glkFNZ4BkAfNdDhzunL5m+VeY26eTpq8tstVKj1xe 1OuqbfbGJPJZPH5Aifuv0QIb1LsKrSn+6MHOTm14FfQoynu23tkarbx96Uenhk6E+R3F+Q0SIaj 7trS0E7Z9Vg+MFpFDsOsL7NzbP0Voi9LpuAE48mPk3yLj0PIr7EyTQX96JqpqqfA5oaCLJb8xOU HRTn7ULdSDrxhYLZvSjbuDQXG0ENDCqpBxPTmrAHq/j5mPQ5Dy+MFb79P4NI6x2a5wviX6qHZeS +muqus+dsjf3O/g3zGDR6TO5A X-Google-Smtp-Source: AGHT+IFYMevSqL3g2aYQTcPeajtFC88rNpWFXEFv+GuBYebsuxBaKw/pWvRf3YPo2VcyVWyJ3BIZAg== X-Received: by 2002:a05:6402:21c9:b0:62a:a4f0:7e4f with SMTP id 4fb4d7f45d1cf-62ed82f1ae2mr3557772a12.29.1757692770879; Fri, 12 Sep 2025 08:59:30 -0700 (PDT) Received: from localhost ([2a03:2880:30ff:74::]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-62ec3400c3fsm3535438a12.39.2025.09.12.08.59.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 12 Sep 2025 08:59:30 -0700 (PDT) From: Breno Leitao Date: Fri, 12 Sep 2025 08:59:11 -0700 Subject: [PATCH net-next v2 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: <20250912-gxrings-v2-2-3c7a60bbeebf@debian.org> References: <20250912-gxrings-v2-0-3c7a60bbeebf@debian.org> In-Reply-To: <20250912-gxrings-v2-0-3c7a60bbeebf@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/8eHdtAcsmYgBoxENdlaXSNStTYTALXrlkCB3WTj0T/uYjCPVoS 46LuuFRlZCJAjMEAAEIAB0WIQSshTmm6PRnAspKQ5s1o5Of/Hh3bQUCaMRDXQAKCRA1o5Of/Hh3 bZSnD/0c6x14xLVVFlG64pkExebY/Wg2ha3v+RU7+P4AgDSckNdFjd3sgud6gCZeULklQRDh3Xi zttTYmxlWsfmejR88F64jDnaomxVzaF+UZwOZzto15KaaqvOspyvpbA5WP6T3xHDUHL4WV2vbmb vWFGe/IzHlCZdPU5B0vBdNwlmB/QLFTfX56JfykLT6zFLZJRCnsj91UhNVQr47Isb2f4L793B8S ERF70m9DRQu1m0Mn2HdE/wZnEbXRDyV5RkR6+w3AcSP6OiViRtvHTDLiM4uS3Y4+IPpuYj+wz4Z Hx9iQxR+VZZewRYLJTfVjymed9eN7AJeKQXQOqjfG4m35smM0lBt41Toz6W9cVT+Ab/iL96J/hM zKs7xXDe3vQt4XnibQg/rwrH3hO4o4j0UcktZxMUDFzx5L7Gp/scvIl7urffe/dEgN6AtFxx8AJ F6Gh8VwPh2GPqUr7NFJWXF4EELVTYHbvcwECm8/yhakzAmXkMCCHbEYO/vuezZSPrQf579CVOMe oCvana2YaCpqNtJ7gUE+/tytahAwDDyeZNld/PlU+TVDFVc9SyWD1qndUgZJ2TQs5g60rxzNez9 PcNmHmQYVX2Zo106mKivcazwcbZdNomA5x19UkueevX0mJfVnf7pXf+aSYZct8lCI+gaSlVhwZo a43wKjrUKLHOn1w== 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 18:17:41 2025 Received: from mail-ej1-f46.google.com (mail-ej1-f46.google.com [209.85.218.46]) (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 28AAF31DDB8 for ; Fri, 12 Sep 2025 15:59:33 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.46 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757692775; cv=none; b=rQD9JQGwK0Gw93f6RsYjYIrnA28peXiv7vYwHxTr8YsWp5/oMbocNEKMle2h7207V/+YZCpIHcS0yb3Q34NEKI6zqh2EqfdtA55D36b5UBka3tHgqmQbShDu98iRkysABCMwdPROyMKX5zeLJ2pMvGKy87gKhdATJjwGbl1KHS4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757692775; c=relaxed/simple; bh=g5R+KO0zDOkxIkWQNfeVkn9e14oSE0vPMCqx5KVoKUc=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=S2A9NQKTFjmj7AtyqRiGkANN16ZhhVvLwXCbSvsglx5qGEj7Jml/RBpQ0zG4HaBFQUvwLm6j4LiD8pn6xwKBCt2ahCqQ1vdOhsQuFYSX+wP4D/QFtEMA2bSMoSvIRbYiLFZWCgVvKXLadSFDHHCzv4437mqYNn2sUeaKTPf3USI= 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.46 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-f46.google.com with SMTP id a640c23a62f3a-b0418f6fc27so362728566b.3 for ; Fri, 12 Sep 2025 08:59:33 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1757692772; x=1758297572; 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=W9AFu+AXxJg4Zh7i1LVVAGCimciPGXERJE7onPhEao3s2VE3nTCQ24Bst54wW/+Qym 2cNSPjCyiXmEJa8zKPsD5Wpkr7aY/QqljAA0fEnNDkB01+CO91JGSgMkbf/D5+l4D21N Q2GvUwRIN8/8drs4kdIOqGWYTSV00NXurJ0X+Zx539dhi3hcN6D8FaHRmxyZdK/WanDo DuCtlROzEs+AP2xT4ogCuMe1XwUmh0VW4AHz56aKkfalrr01FBD9Enmj7tTycWzCNSTO +XSk7h46FnjAQJxNYU84VqpURKiAfutKJYwGbWkqBhGtJzSvi7A4JOskm40a1R+1V9wc 5P+Q== X-Forwarded-Encrypted: i=1; AJvYcCVFFzqmuvOxxixfQ5Q+VrkeSp0qic07DA1mYBHMnFY4/r5FTa5KV+oj01a73j382cVjDr+JDBxOyQ5d+uY=@vger.kernel.org X-Gm-Message-State: AOJu0YxO7LYDff1vFB3n+ulBbMMzXIa1NcEANWywdiVHgQ42CODZF5/q mma4lgX4L7W5JXUbkJf3bMUL0Lpzk9vjVMompqe36yS3/ibzZol3I7rb X-Gm-Gg: ASbGncsm1sPQXB2kiWg8aPgRtjObC/cYr7l5NnQdrlyP81vsZ8YfJ4DjzqNdbUvY3BH BnC9oF+nspkz6SuwQJRcKscz/p7mJkmOgSQyVsboFaL1xFdkrRcqHs/Q2VxV3eW7pG2tzvaUsMy QK3FZriaxlCsVO5Z8lLnyEZZ2rugQVsgMjrRK9fLcdne+WUIZSpTpr2+UuSSkSJqzjAs1Iswjkg og0gqb2e7axCBizsmT3PPUkBAlYDe36VpNu+rgLCPvb8VGv65b5K/1oZJpwMkFf4ixBin0FQiyS 3PJrkJsoYuNP6nnd7VAelArzD+RwBChmAvg1KWTJCSaYPFXvEuugFTienfW7mPhSMyXt0I1hMa8 Rx4rZ1XRKmtZTkeIrqKDDk2l+ X-Google-Smtp-Source: AGHT+IEkD2uKpEbBOPznpcF87Q/iRdRhFr6K7yCKT4Ro2d7cPjURx4Kesax8u56jVk7KiymNdYS3QA== X-Received: by 2002:a17:907:d88:b0:b04:7541:e695 with SMTP id a640c23a62f3a-b07c35fb5ecmr324439566b.32.1757692772365; Fri, 12 Sep 2025 08:59:32 -0700 (PDT) Received: from localhost ([2a03:2880:30ff:41::]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b07b3129199sm391244566b.36.2025.09.12.08.59.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 12 Sep 2025 08:59:31 -0700 (PDT) From: Breno Leitao Date: Fri, 12 Sep 2025 08:59:12 -0700 Subject: [PATCH net-next v2 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: <20250912-gxrings-v2-3-3c7a60bbeebf@debian.org> References: <20250912-gxrings-v2-0-3c7a60bbeebf@debian.org> In-Reply-To: <20250912-gxrings-v2-0-3c7a60bbeebf@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/8eHdtAcsmYgBoxENeorzEH9QoRC/ICeYokjFdcyZfGLA0p+bf8 LlBUghC5w+JAjMEAAEIAB0WIQSshTmm6PRnAspKQ5s1o5Of/Hh3bQUCaMRDXgAKCRA1o5Of/Hh3 baWxEACGe5myxSrcs2HUexrCkumOZIB5/PiB1ni7TYZ0H4kUe9au5/pIp6vIffrT2wKAO7uZbjE zt1KGIZ/ZSIuCDF2QCW61Jn7u+W/fYhi4b7VggTP9Ea2u444t6ohJM7mm/xbN3R6CBZQS9pzj0E dCsyolAnhysLUk2ln3ZuJGEXXcr4C7bgwezjzkI5mf+xu2pF6KnEA3XU4shj+f5sq4pww+m3UbJ wTiBZ9B5b2tH9IU9RGpzKEE2J9vGWnpoHc88eTOB2BBAOvgF8X5IFzAwiJ9bVFaLDxCd+X7gzqd xdtRUDorGrVvxxWJh4SNEfzt2ejaq6f3fpjqbQI6LRg9SdlqAHBs11lcG37X00AeJ63u5e0XEls NePnbxkt7Ufa6B/1w/cjVYbOdBsLb+ZvK76O+4GaQXPgN6p8YhoMcGokMbvHbDHRkO0+xV+ep9R vmSlJMA9Af733q4NbHl1SvFFa/K9SS7yRc6wRKaBsMHFw5CQNYaZLp29FXF64YrZfFwNLmd+kkO pNkvyE/ZL7AszZLfhfGhbS2ICCR8Zr3t5e2aPD+SBWG5PuHAXJHRdHnL8/L9YL8xvbMufGNjIS2 qYtnEwuRqWoDogiaqxgDWraJBtqhv97StmFJ/5raenWoAwrYrseBx9KRBiOK9+LfF7olGI2SdQ6 e3NOMM5IZYErUIQ== 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 18:17:41 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 E79CF3203BF for ; Fri, 12 Sep 2025 15:59:35 +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=1757692777; cv=none; b=D2M5eoz+yhnlD7pK8ZNlFZgnrd/ZlYxTX5wh0KhJyi/h4i283ydbQhclUGIRtrWjkLp+YdtpfEBxyxrfwx1SY/l0Po562DL8Cta8TvXKQsU2FkRhEtQCLsRhrHYQQF+PpknR7zOd7TRd4KmEYoBQLQn84BCFEX6l+xXXSaP9/mE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757692777; c=relaxed/simple; bh=E3RmOwFPZbM9DLJp1tUiPCsma8q5lL1T0OFqGO2M+Xs=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=XaTtVsJC2s530vCw7aBpJD7NTR7LUN0dR2kpKgAdEK1TiYakHgyeinw+DtwPMiKcbSAskDQ8pGVjpeAKWnvHxJqSZXjxUxsi020oIZHBWH9r4ON82XE5Uhs96M4Mwvjb1pVucUZqi59TqBKza0vGyuAqegKLBQksg8zY5oEY0mY= 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-b07c081660aso239059266b.0 for ; Fri, 12 Sep 2025 08:59:35 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1757692774; x=1758297574; 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=wMV1Ua6hIXmpXxqV2akAPJgG5/fWAzzyW2yIh1KAAI8=; b=Cz+ZJzeLXfnAnaT4Pj0Q8mT6mwGiRORdMkG6jLBb9dFh/wlBWuzT6ys6HHSDMBglzS UFHxAwMRf+VPOOmd6lLghqGKXQB97cAGmtq8OqSUwpOLH6lEBF0Xy9iwNYmBvThPaRKP 7VNbzviOii1+FPpdz7XcwQqnIRFi3/6ff+p1kqyL9ly3iJGgnATWNVOIb66vOH20j/80 0pL9cXZYw7grxv6MVty/21kbLzR3li7hnG51TvaH2q49Oe1Bv4/X7kLKmIjI/e/YI5qq gVdpdcQcxwWCyEFL9sF2dInYJOV6/YRN738PlEbAYGh+bKN36bQuNFkl7HDm0aXTmd1j voyA== X-Forwarded-Encrypted: i=1; AJvYcCU2VBrUFV3cr7NjDJrVagytIhTdo8MmuFMwNtetdtMQhpUnhq1eq12SL/NRhiBQBuLrew2N/Uj+K12UkDI=@vger.kernel.org X-Gm-Message-State: AOJu0YyuW6HgUKAoIJgFv4e7NdQoBjwYjrrYtPM4hg4uTJWEBABT/E+g EtAaDbhlL8dkbzx4tdMyxsmLYxeGYBHEAXsvn6j36tHxLjl1N6XMVTMa X-Gm-Gg: ASbGnct/ZNEmC0w6FUR1IMat69bZhaSwLJHeEXWvuvEg9ofCXahgWCMHHfxiV8PzRi6 iDy97Jbpz1lf6g1sE819wlqkxyyeKzFlE6QAlKoKOCFy4B0XtDEgZsjFg5OH7ZoDB+LYYrzOmpH yTwiXArNWGEvkJc2qILvZcS31fqPqN5G9Qk4PBy62tSUdRZOZJD32Otxa/phQw5idh6LtAjMcE5 vsyPVd9rQdJsiSlSHNHirlGk3sgXbYNFj6n/c7OrtIta8R7KipUhDfk5tm7XCCp/7+WUig4otIR vHCxWEGe0nb28BVDmpKXqwTXOakj8DbG232J4ZQ0/eOe1B26n0dRGUUE560ZCdDuITiONHUaqOn 8SthYAEi6Zhk4YIh6jkMdq5o= X-Google-Smtp-Source: AGHT+IHLENQM4ctxSWaRHzD35CXELlPF0xQ2QZDOg0GBNnfAUv8Rvir1NFkO+Ytu+hJ1BwFvMGZuOg== X-Received: by 2002:a17:907:1c11:b0:b04:8420:b6ef with SMTP id a640c23a62f3a-b07c3a8c69cmr301778166b.61.1757692773973; Fri, 12 Sep 2025 08:59:33 -0700 (PDT) Received: from localhost ([2a03:2880:30ff:1::]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b07ce4dbedbsm110856066b.9.2025.09.12.08.59.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 12 Sep 2025 08:59:33 -0700 (PDT) From: Breno Leitao Date: Fri, 12 Sep 2025 08:59:13 -0700 Subject: [PATCH net-next v2 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: <20250912-gxrings-v2-4-3c7a60bbeebf@debian.org> References: <20250912-gxrings-v2-0-3c7a60bbeebf@debian.org> In-Reply-To: <20250912-gxrings-v2-0-3c7a60bbeebf@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=2997; i=leitao@debian.org; h=from:subject:message-id; bh=E3RmOwFPZbM9DLJp1tUiPCsma8q5lL1T0OFqGO2M+Xs=; b=owEBbQKS/ZANAwAIATWjk5/8eHdtAcsmYgBoxENeWuZjr3Kfzb3cEIXrILv6NIOCvh1c54Fki o8uxIbHQhSJAjMEAAEIAB0WIQSshTmm6PRnAspKQ5s1o5Of/Hh3bQUCaMRDXgAKCRA1o5Of/Hh3 bQraEACMjw2Is/lUdk7WXdz+Ghv59nuekcPDu3MUyW75gBMnC+0hByeAQz30gHvrfK0GUEqQbDn HWkVbyHfBFGvj752fpL+4mGnHXEqhVel4OlLMf+wGibcbV0EpsNEinN6+9lbwoX/85lTuhu8YIw nmER8s1WD4hddyrcio9zDZmN3auCNdunML5oOSdTd3Epqj+JaoGHV50/qHJGNi3xeGtkDvYfxOn 93a8Ycez5vsA48m56NdP8o+2P4p3h4HwsW8cgQFBw2Wm6W3uXe/Yy3cyw2PmeqASJPtmcdHj+cV wTTMLS2AsfUiATRWuKrBybz8An7DXgQhgsVZ1VbRwiV3BZAYm19ltguTzrlj1SdLKD8dlNWONvE G013122HTafoyKx2lB6wPCjorB0ApAQFlBHo5s4uUE+BHuCS4tHG0KM8pORww3WAPt/jDZDAq6a h5bjZ0dJcTLSyUTNNACWvKFIKj4sQQjTO3C2H5HlnjaeiH5IEteC/T6gxEgjS2mYJf4wa/rrxEi sKM+CpN+B+nNWymHNsUDQxD97ahLq/m+U88Fgqs1A7RQH5ecC9kqa+WlZKaDnVxQiOcV7IZhJVZ BEM76fV/e81l9aDelB/2QFZJ/Ge5Pd3wghTs0ZAXm6HEh3+I12poDG5qjftSXRQWXB7iZdQv3sm T0+5CwRqBFEGDVw== 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 Tested-by: Lei Yang --- include/linux/ethtool.h | 2 ++ net/ethtool/ioctl.c | 23 +++++++++++++++++++---- 2 files changed, 21 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 a0f3de76cea03..4981db3e285d8 100644 --- a/net/ethtool/ioctl.c +++ b/net/ethtool/ioctl.c @@ -1208,6 +1208,23 @@ static noinline_for_stack int ethtool_set_rxnfc(stru= ct net_device *dev, return 0; } =20 +static 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); + + 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 noinline_for_stack int ethtool_get_rxrings(struct net_device *dev, u32 cmd, void __user *useraddr) @@ -1217,7 +1234,7 @@ static noinline_for_stack int ethtool_get_rxrings(str= uct net_device *dev, size_t info_size; int ret; =20 - if (!ops->get_rxnfc) + if (!ops->get_rxnfc && !ops->get_rx_ring_count) return -EOPNOTSUPP; =20 info_size =3D sizeof(info); @@ -1225,9 +1242,7 @@ static noinline_for_stack int ethtool_get_rxrings(str= uct net_device *dev, if (ret) return ret; =20 - ret =3D ops->get_rxnfc(dev, &info, NULL); - if (ret < 0) - return ret; + info.data =3D ethtool_get_rx_ring_count(dev); =20 return ethtool_rxnfc_copy_to_user(useraddr, &info, info_size, NULL); } --=20 2.47.3 From nobody Thu Oct 2 18:17:41 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 95196320CDE for ; Fri, 12 Sep 2025 15:59:37 +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=1757692779; cv=none; b=TK3ZbIZHNP72VZDBSUQNUvjN2F3sC92DYAM6TNVkIK5nQ2o5SRycJx6PXJNdUUvfXprIvLfQGGQR+5c1zht70xUjCjI/kOhJZ8rQmWBjDn/AHwoP+8dsuWAiXI3cHuOublCQg1AHr3xOAk9uyfkGtmFgsLnBlR3aOYjU17OdMjw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757692779; c=relaxed/simple; bh=B7hiaydeDFqwwV7/Lm9sF9Gk3miD67w67Kgp/MXuDjo=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=b7RiBaAj665yEqEfvAQZPmXOq/xyLCwB37R9gnqfPoSNA1N4dHfXPEf+WtFZ0ZK7Gvp5ynALy0eQBaQcTs8OeDk/BiXbxQe1+lM1QASXEapmy9xkLPeX4HYKfWWOExxHa9iPxJn/ocVvXR6io4KjDt39FPAsc8T1JavAwgXFhKY= 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-6188b7550c0so2530630a12.2 for ; Fri, 12 Sep 2025 08:59:37 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1757692776; x=1758297576; 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=c+VSqXxVY9gIzYmafuA9MWcYdBFAas3bxDM3moiIIVw=; b=cxvtSzWYS+FhQkftNS/0BQ46TFDznhJBeg1Yi5qQSAB8UNnvgWrs7BnRNQvR9WCYSz Eb2mjKTwuECm9AjFhVVJg1DLxMRutVR5VixB7dNGMAj1XtGXPNqALX2w/r/gL417uLjn E/RQwZ7wtHupbgI73WH++r9/x1/MUTQ8boQZ0iDHQqG4C4/xCqq+1FpeQwF36esLWfCE pQgHDIOqssneM8ch+joivwmmb2BvPrUUdNiFisB45RT5M2p57lI1UQRVgQrlFD3oji8A hiG4+AAhMQmLDruD8zfY89cHnop5zFLjRfIwoWSZSzuTBbGzF+LIygCKtFbo/HPocMVI E2BA== X-Forwarded-Encrypted: i=1; AJvYcCUIjlzqmoeQA42hI4sAPu8vRipwbFDqQZ6i3aiVsvbw11DNN0nMt6AiyMpu464+MJyA7iarMTXunk7mE4o=@vger.kernel.org X-Gm-Message-State: AOJu0YwpxZJKvHlZjwo2P2D/fknM7T5nYfobQ6JGTLleXEhg7M/Tqqpf ScRs9hw1Mj3/IO2Np+wml/cuZVHi7lJDIyRdSTMgi98rA/8VVwu/iC34 X-Gm-Gg: ASbGncv8RLBVkgxTUL6FXTReExG+vW770LcCA3JY4fqfG82XnS9F0+6ZjJLn7lEY0Wn dTJ9NKLNjjLyIPNKDlrKp2NuiccrwDT6gehejrBl9Wu6u0WHfaZwLCPHjV3V1CAZVerOV/5r/4Z ewGFej49FCy2BPz7+lPw5+hps0qrxxP4WeHD8E/jCGXXWyaJj2BM2x9g63oD7Nf2xpx8qRcrvOp ePULQ6AD1LgMGfgDrGeASXEnX0f8Xjs1NnlUECmWAxLfVEK5S9ncpf6LyMDAvF3PJj+YCogzC98 J+O5/OoSDEzU7N34Xqpr4uVlDwLh2Hra3ZTfz+GlgxFD14TxCp6/AwXM1jjT7v4+tSOzw35GF2v 78zvryPTBSd6MnOoXp+vVyCOw X-Google-Smtp-Source: AGHT+IEyPqi71zP6kl6VEGAReOmXJHzMcQ+n0SiMqyw3a6ODKWCPj/FWUp7Nx1bPfsfRlrSOfwQ5HQ== X-Received: by 2002:a05:6402:2686:b0:62e:de67:6544 with SMTP id 4fb4d7f45d1cf-62ede6767d9mr2651900a12.11.1757692775394; Fri, 12 Sep 2025 08:59:35 -0700 (PDT) Received: from localhost ([2a03:2880:30ff:74::]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-62ee7b531d7sm1217307a12.51.2025.09.12.08.59.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 12 Sep 2025 08:59:34 -0700 (PDT) From: Breno Leitao Date: Fri, 12 Sep 2025 08:59:14 -0700 Subject: [PATCH net-next v2 5/7] 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: <20250912-gxrings-v2-5-3c7a60bbeebf@debian.org> References: <20250912-gxrings-v2-0-3c7a60bbeebf@debian.org> In-Reply-To: <20250912-gxrings-v2-0-3c7a60bbeebf@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=2187; i=leitao@debian.org; h=from:subject:message-id; bh=B7hiaydeDFqwwV7/Lm9sF9Gk3miD67w67Kgp/MXuDjo=; b=owEBbQKS/ZANAwAIATWjk5/8eHdtAcsmYgBoxENeny8wo36PzH29kKSTTe9UiH4dRoX00y9id 9gt3DbRna2JAjMEAAEIAB0WIQSshTmm6PRnAspKQ5s1o5Of/Hh3bQUCaMRDXgAKCRA1o5Of/Hh3 bTVlD/4ob6FbB9AUn7BHarxlRnL2di0HojfoD96flzMkcDD1E3vYwDsJM0mGKzlcNz8pMNf2Y/X dKrsIl8OgCTBy4E0hEMnQ+8jStaeEzciIcEWVR1iIdBZRQHSvMmpj6PCn7INArj6mkdpkOo2ihY DtfX61FSW13am3yyJDybf4CehRuejNqr7D+2Hw9sAnSvKq0L8QZ534Zh79gHihK05PQYOxfsmQ4 KhOyFXLJTpnW0Fd4H1DH+ED4r4vSQ8iFqMPXL3tSL7ik7mcBHBQmzqMAwUfNxFzHB1KK9+lz8nW oOOUhOp3WJdrjr7ppzOUrZ/MWEDUpQUYJnykPgUQVrdz4PrwBL/8IiKZFPQRpVU96nLoor5eYf4 XeiJIA5wNADLGjUIePe3QlsaeT96c9JDuS2EeJA3167N0EQf2HNXTQ2g5jV4yKl3ULAg3dSsvVf LyTYM3KAP9/tMrR/zAjaUd2y+3vF7L4Eo95r8Zg90lR5+4VZ14njU/NF0TG33Fxf9FHfoBDHNTY kGVTE4XsxE0EEySosjc0S+GUMqlWQcEcmnBy9iuGNJtoBdb/VZn9Ggth56OZXrtZHTe8yUsWgac hrDOteKtNm+kh2GL7/q/KlAQkGWRYp1IAvLsHP87DLOdjIZly0x+2OvPBAIfNknnkV27mPPlqVV f4Q/2UHxQKvGuxg== 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 | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/net/ethtool/ioctl.c b/net/ethtool/ioctl.c index 4981db3e285d8..01db50ba85e71 100644 --- a/net/ethtool/ioctl.c +++ b/net/ethtool/ioctl.c @@ -1548,9 +1548,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; @@ -1611,10 +1611,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). @@ -1627,7 +1628,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; @@ -1639,7 +1640,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 18:17:41 2025 Received: from mail-ej1-f44.google.com (mail-ej1-f44.google.com [209.85.218.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 14CA8321F57 for ; Fri, 12 Sep 2025 15:59:38 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.44 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757692780; cv=none; b=utqS4fUjGFrWadErUufW8jHjLFrFKngM1WB3cvG7C3t1mNA4oSJyYeukIacBvhb8HIn67pL1FA5hTQSU43E1UE6LLMctgctTf8n/f2odYhuxtCMmOPpU2Hi4Eja11WwhjovEdJHhwxKTv95z5iyWweUpT6vq8/tCwINt/o92cgY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757692780; c=relaxed/simple; bh=+Cyg8fYez6TSqkQqySfOA53/MjPLqa4vHVdBzTfcQyQ=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=sBlyhtQyq+nrdRv1rwEVxOKRFC/JyY0Ovip3+5sSvq3oM35kTcfmYqHb7DXOiOieSA5j65epYnjxUstL2kJuikJ10xpQvoW+Rg69XFtpC3+SPZJYT52geAVE+kniFvlVKs9XSqc9denCTEMIoXNASYcQyri3rhD1VWopYsj+uUY= 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.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-ej1-f44.google.com with SMTP id a640c23a62f3a-afcb7ae6ed0so326372966b.3 for ; Fri, 12 Sep 2025 08:59:38 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1757692777; x=1758297577; 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=aDEVJdYmXjRIZdNwmkm1CN0B9UrWr+aTfgx+0lOTdy8=; b=qmWitkxrQ91ndXvo67iTQlV+IHNthOY9Y9uvWxfVlLaKvDSy8oq3I5sCy0CslB3Ss6 Uwq8FLHxICy52564rpBoB2JP6EJ6OjfowJVQK8ipRriPB5sxvd1cP73rTA+SU209VGst byBGnHvT5VjurLBD2srnEJSLV7oDtqjvJHmZBizoC600A4dDsuLiEpmw/vR2hTKt5L+9 lscHJMJg9Dt33Q1lbjXYlgyA2eBUcAn3m7VE15bHECIaDV8bIIXy84WCnnTXMIZkozJK K8HNEg1bfc3DTzwOR7xy1cX+mb1wWa93DxS1YoaVz+FathYDTC48EDw9FOf6tq3/Pz7h DLAg== X-Forwarded-Encrypted: i=1; AJvYcCWJZvCAr1s1A0/FXKzyu5FizrICd7Vd84MB1Pt5iqs+bXJmwMaj8apy3hEaAwgk5Tm/rZhVCDy3mfgFEfk=@vger.kernel.org X-Gm-Message-State: AOJu0Yzh34fo2AUPCm+hy80evJVVHiyJwLstLBslk3RRHMCexcTrfJkD VZuWDbUXOaANSoHaJNT3C7QYfLRgeX6RmWQrmsKDzsyyvD3SIjASLmsK X-Gm-Gg: ASbGnctPyrRlj2fz7S2hhBbOn53Wt+IRqbrDwxwi63w+eIqMcR2LXFXRM1wRTHzRQN1 6LjVwKczr9ikfME8ZIFw7ux65w1CSta8GWwLK10ZMWmlDq9EI2915jDCVTkMYNOhknQZFP1DDLW 12vpNW278FbtOI3KLrXvaiaQQr7403gEO1HL43oHGGXSetVb7CAXaw3AGg1EgChJSt63vyFp9Li op3vZkahgCxn9iP5uVoDZ00DDlwp82H90TPPWgnmS3FQ88dUgcGuYKpWERauZvWDfyRdiu8mTcQ wjz/uLelB1ByyMbr5bmQ6Iv6EWivLtH1H2HDX8SS32fE8XMNunqGvwv9sg6qIQV8NRWYaJr80zB 2iPDrXdr3q3xhWw== X-Google-Smtp-Source: AGHT+IGeZOJfA4BYuVq5HIBmnSMrSvhAZUV+17uTbGUeRylSUyMC8Q9l/3TI3WqxzCCNRy6BdNSpCg== X-Received: by 2002:a17:907:970b:b0:afe:85d5:a318 with SMTP id a640c23a62f3a-b07c37fb563mr287410466b.36.1757692777007; Fri, 12 Sep 2025 08:59:37 -0700 (PDT) Received: from localhost ([2a03:2880:30ff:70::]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b07b334eb65sm396246166b.97.2025.09.12.08.59.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 12 Sep 2025 08:59:36 -0700 (PDT) From: Breno Leitao Date: Fri, 12 Sep 2025 08:59:15 -0700 Subject: [PATCH net-next v2 6/7] 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: <20250912-gxrings-v2-6-3c7a60bbeebf@debian.org> References: <20250912-gxrings-v2-0-3c7a60bbeebf@debian.org> In-Reply-To: <20250912-gxrings-v2-0-3c7a60bbeebf@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=1795; i=leitao@debian.org; h=from:subject:message-id; bh=+Cyg8fYez6TSqkQqySfOA53/MjPLqa4vHVdBzTfcQyQ=; b=owEBbQKS/ZANAwAIATWjk5/8eHdtAcsmYgBoxENeV/U+AoSVBvH29w1x5dgjHI+lQxwjy7J9E oLedliMp2WJAjMEAAEIAB0WIQSshTmm6PRnAspKQ5s1o5Of/Hh3bQUCaMRDXgAKCRA1o5Of/Hh3 baEJD/0XwL02qnUe6HDYNlGQqcQRWFgZHUKCbBy3LsFsKxavtRdpdQqqU6gwdgBSWl6krL0hWDK 0dsvkqpzcReVpsyA7LZAr4TW5aKao8XHxs2wBO+LA1pAmr9qSjpJDhcwgmLBSMZlHpleZFYLcPr FRkMPSYglEJWGV9+rE4IpJ8hdKgvHDlTtohIa9r6YqpGvc3Qgq2Usbf80AWHJEUIhjavNbPIJJ/ Iqz4wYohMKlNB4wpYc+3kV4+lX4PNzGOrvt71PkttsY+IZ2t0FCghEjlnlCVpl2wLihJFPJcg/8 ajI4FSPvrO6qluUJyLY52z4v7muRi2h1YdIOzPleNmWid8DlyzT+7konNntacaoodEplEhoZypp J13opvchnsmb9T0yFUPoyj8zNL5ZA7XEsmmH/jgsZ/m5uWFbl0W9l8ZLf5faMGEaal10qM13lTT vGcHnzSlf+RwrXQzJdgSqpXHsUcEJExwUtoeZKBocGxEEiTtQBVcKnlJ684pNg+89Z9OdiJLjYv e2BV1XeATyu3vdTQkvvX0/YmYQAvlpSyh8GDI4qDKNE7hzFXZy1q69N5VsEXa9jfQQL6c5s8OI1 2hpJ9Hf3YVeHu7QPdkLKcs+Dv41dn9/LAgCbSFvgZJdzoBvVVCQ0+3Ff67TpQvq544GBle5MOEG 7v7ZXGc4YB+Qk9Q== 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 | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/net/ethtool/ioctl.c b/net/ethtool/ioctl.c index 01db50ba85e71..c95edb228c3b5 100644 --- a/net/ethtool/ioctl.c +++ b/net/ethtool/ioctl.c @@ -1367,7 +1367,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]); @@ -1393,20 +1393,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 18:17:41 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 72187324B05 for ; Fri, 12 Sep 2025 15:59:40 +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=1757692782; cv=none; b=HuTphAMXAyI8K3SyDWyt473gIwemt8hqMCIqhrzGL/msF+RPHdiSnllum62bRI89isPysRgkbRpX2qvsszPuXJ5CLDYsOG85j8BW1amRwwnuI9N29aQwKFQDd9imlSJZv6TnvwNq88rmoHv5RLV/PCOkPSx4VLYkEddSW7/3wJY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757692782; c=relaxed/simple; bh=Y2hXfnHzSfKGpkRV/+ZGUekIkr1Gt4/QOQoMmnAXviE=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=ia1krQ8ix8kKQ7TSYlCXjplj67Q1JAABzbExMxuGFo3xikkVncMiZvfd1NKhTewBlEQaxwYUreEgmO1g+nVa/9lFfgW9oW7VlOz72S5vDlXBdqrlUbolBbsQBK5EKlPcdzPFCOLvK8HFNWUZbh93l01/GLS4AbIm+/wST93zKMc= 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-b042eb09948so443691166b.3 for ; Fri, 12 Sep 2025 08:59:40 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1757692779; x=1758297579; 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=s5cRgWflF1JKTtrg9YhcbBrjkBfHVbQvgQbnfZgmSfghvcRS0py8cRp4DG5apfeCKq Z0siwjGaXHUHX4h09Dq2HkKV1mALwTM23lQydM+Ghrmzh5DYFpjCwLO7+nWfwoWEWJ7U GmjkVGpRgjYHQKedeQo31lDex7WBVl5brXPoY/l3z5jsbOVrkHMCj0DjbLj2oiSpM9iz uhIagv2K6oasX/w/IQD61IxELzZJsHRux75S6+CPTh2c3sTYIaFWixTi+Lj6Ke7s3/Ex QJiauI1V4qyp/oKxHL0+/WTu0iTd9pfaravPKbqcCS//FaE9aGMrL+2yGqNrREZd/Otz T29A== X-Forwarded-Encrypted: i=1; AJvYcCUkiLCFSGFY3f/ZHCoYsHFJf/Q4dmi1RCGQh8wVOseLomffchiO/Eqa3fD7Lb6w6FmCpeaumRTFS0QjAsU=@vger.kernel.org X-Gm-Message-State: AOJu0YxXEuGwDdVxgSKu/ffAjvDvvk8d6nuy3E8oL7Z/78jswdGV83qz r9oJjqvhWIFyuMwinUWIBiVKGFcd5DxoYP8KDf+Wz5Z3w9VfJXytjf6qlI+BAg== X-Gm-Gg: ASbGnctPpMOK16bmqPkQ1wcl+CW4iPMAaWxvexCKNPYBFu2ZMvMx8P7SP7kX3ZSGTkN epph+R4MnlhGG4UEdEwLLF6hfKRxXAIWHYO8aKtxKVhzWGki1IovnJXHm3ilLdZlwe+x7oOdrC0 D8V/MjlokiR605l11162V6jgSIUhH/XZFztaj8yshZna9CfUauwiVvBaZw7493iPG+Wk0xqCGXV L+phTWOOPdsiNX39L8iPy1z8kqfTNLsHeNnf3DGaRIrsYnPqAM5VmAZRig0ZU5LoOXwaKryQyR5 vp+T5H6gJq4KXDBDv+Wy+j+P/o6E/EqfXNVi2QQiYhrYqsPQDdmQV/TMFSJ8svIoAWdMqsfJbhS QlC+WcamYJuT9MppQmt/zYfar X-Google-Smtp-Source: AGHT+IENc4Ma8V5tCc/liKhp+02LKc2RicXHgsiwshsnplPzDX12vx98CIJbx90/d9q+6PULUumo8Q== X-Received: by 2002:a17:907:3f18:b0:b04:45e1:5929 with SMTP id a640c23a62f3a-b07c35cd746mr359576666b.28.1757692778573; Fri, 12 Sep 2025 08:59:38 -0700 (PDT) Received: from localhost ([2a03:2880:30ff:42::]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-62ec33f3c01sm3584285a12.34.2025.09.12.08.59.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 12 Sep 2025 08:59:38 -0700 (PDT) From: Breno Leitao Date: Fri, 12 Sep 2025 08:59:16 -0700 Subject: [PATCH net-next v2 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: <20250912-gxrings-v2-7-3c7a60bbeebf@debian.org> References: <20250912-gxrings-v2-0-3c7a60bbeebf@debian.org> In-Reply-To: <20250912-gxrings-v2-0-3c7a60bbeebf@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=Y2hXfnHzSfKGpkRV/+ZGUekIkr1Gt4/QOQoMmnAXviE=; b=owEBbQKS/ZANAwAIATWjk5/8eHdtAcsmYgBoxENeBFGi6WpdTS8dpLji/97clvQfo2zMjVoNE 56PFE2cZluJAjMEAAEIAB0WIQSshTmm6PRnAspKQ5s1o5Of/Hh3bQUCaMRDXgAKCRA1o5Of/Hh3 bdEVD/0XB2Bl57L+rLumfG+of0zBhpBmxvs79I7Bx+mXlU0xsci+hGJzDcx3G5qMnEWiIYYrDMg ENU+pkKPyT7wLQ6HhaeQH5su1B19HWA35aqAhkbbJaF/GDSl1bhrAxMQ2760HBmXo4FAErMzz9L 2x6DIxi70oHcK8swT6751x0MXxqot89K1pzgh2D7xgBBGENxY6AXvdT7zzWOJT6c63v2gH8Rsrk CjjfqojfPIP0aPVE8NbnmUQ42KigZXuJdNnitjTE1ok7ymYN2wZbRUMOrzSmuyJ5v4PEIa966KL HLzQ5BMb09bn+gX0W4U5XwZznEAEVgIbjY7OAvuKXsUrarYZ5IPyJY/2oc11MhFM2MaA36uDjmU zRpmLtt51vHyuUls0x0yU3Plx4WQP8RWMzZRG5KDKpdJMvQJKmKCuhtKFDsX7mF85FxPAKf72l4 VoEcAUwIci3bBZdZ9wFU3CzpeY1Qlc+SC493uQcoYy7VR//qHNz4aUbO8rOaKzlermR9c6ChYdm 8MDXoMyIVKGmmb6T0ayHbpF+1x7aUK6+5y1Dle0bu77fnCmGYI4A6Rn8hveuQNNPMou3SxPtPxk 4ShbNEvs8CF0KN9N+RsYNfTLgvsmQpH4pzF99CTHrj8hUPcbKyuBSbw6PddAMO3Xhw5lzWVnBFo wp4FunMO4VxPSwg== 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 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