From nobody Tue Feb 10 06:08:12 2026 Received: from mail-ot1-f53.google.com (mail-ot1-f53.google.com [209.85.210.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 E5AEB4418D2 for ; Wed, 21 Jan 2026 15:56:21 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.53 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769010984; cv=none; b=Mb1yzdWjPwyBCzK4I4uDampd8GyfcmRYLCyS0p6pZndHLuvuLIHzLYq7rl3WPrAIvyNNzuQ2568F2Y8ZIgHMZ3nxFrvWN9ySiMyilZKCqXC6JuG98PATwrPb9svgkHXMrKdgVM0H6cIxWXvvQh8kEgYMEjlzJlUbE4/qRFEBqt8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769010984; c=relaxed/simple; bh=bJbfYoi9ePT6GJvQe190QXenIvJlnJbG5gCYyHOYLyw=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=NDBn7xiVAKAY0HXivYFagbnOIekgEQI6Y5noIG5myXR6AD/gZIDz39OtFggmktWTqvp6NZ+EUv3Z4LiQgX25f/hpAZ/MBeq7nxfRsbE5YjqzbD8Ip8nTyJ6qJQsrjmbACopojF1RB9n0QmOLJFwdaq52HBZDfQj2l0j6C7LqCJg= 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.210.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-ot1-f53.google.com with SMTP id 46e09a7af769-7cfd48df0afso4380756a34.1 for ; Wed, 21 Jan 2026 07:56:21 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1769010980; x=1769615780; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=0dc9BpwHRAb/FF2L8Jh14J11cIizVUqlWjJq5crcpt8=; b=ecMAAJG98UGIjQ6vylLrgo+HIrfVLS839Ol/GI/uGz1vPRt8gFrXBHUT/Od+kqNNSR hfqSPwJtf3B55yp/o17mApZult50wbC00qvE8V5NcHB13rqNX0e4GiY5FTk+ejCDWPVQ IJNdi5htrvHntSeQjBqmkmFh40TTjHQl+qc17Ih/LF05U27KGA+Zea76MSdiaB8/2Nkb zEspaff4d6CHDEubGHLy2D9BpL3GSXwhe3XQ5LPJq8k7Aj9uklPE/DviuEyQ3pozuqln y4QWug3LA/R6TLSL/+pWgLvkREF0CEs7pTC5jReG6J0nuQxU4yBaFj7CInmPZug+qSVP iCEw== X-Forwarded-Encrypted: i=1; AJvYcCVto4aD5tn0vpKCp4EZ5V0MnKZKKb2HYTPY073cYQZ0ADYZJoBb+UKybuU5A05T+6FQ2WPRwVyEKbqd1As=@vger.kernel.org X-Gm-Message-State: AOJu0Yw5JYsc/O8GCLQXspIBgsWeqVQuw8kpLGDtlXFZeeCjbe0ugq8F yYpzdy0Gp5ZkG3SXksqExaUBIxDmHS0oCuwG7bes5/ZtZtUylzWYjcYl X-Gm-Gg: AZuq6aICR+sqfRI584hbBdT27+osmXrlcP+HVR1qDyY9f/rmRhbvZQ+xcVL02qfpO1F qGQZ+bDP5eWPbl5GSsbSzLr+i9FKnKqedMnxBs1ct90h4o6QXZC7QSjPuIV2C90PH6mK3TQnRiy p+NSC3SPgAiOtIpb/r4M2EprnSiEee0XsKtz6jhkK1tApmIvii1KvC947jgk24PTxOeML6XGaFY eqz2pCLWrN6EDW2L1Dpiov2C4OT4z64QoNZq+IvPCld4TV9ogUYpaLelWHmgRrD0BOiypLFm04q nW2/ARSdxzEzqk1Hk4nGCN2y/MG/aaWgtoPFKxhEKlwJjUSsnWaqA+pq4wZ2pCWzfClnqS0u+jU aYJPxHjzajZcv5k2HFMzQvbLyKcc4fH0hsWvvRe8QS8rx/XcstWje9KT6ihPw1+KL0LxJVyjIhd rQ3A== X-Received: by 2002:a05:6830:34a3:b0:7cf:da36:4c7e with SMTP id 46e09a7af769-7cfded34418mr11426838a34.8.1769010980605; Wed, 21 Jan 2026 07:56:20 -0800 (PST) Received: from localhost ([2a03:2880:10ff:5e::]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-7cfdf2b5a74sm10537443a34.29.2026.01.21.07.56.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 21 Jan 2026 07:56:20 -0800 (PST) From: Breno Leitao Date: Wed, 21 Jan 2026 07:54:38 -0800 Subject: [PATCH net-next 1/9] net: benet: convert to use .get_rx_ring_count 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: <20260121-grxring_big_v4-v1-1-07655be56bcf@debian.org> References: <20260121-grxring_big_v4-v1-0-07655be56bcf@debian.org> In-Reply-To: <20260121-grxring_big_v4-v1-0-07655be56bcf@debian.org> To: Ajit Khaparde , Sriharsha Basavapatna , Somnath Kotur , Andrew Lunn , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Igor Russkikh , Simon Horman , "K. Y. Srinivasan" , Haiyang Zhang , Wei Liu , Dexuan Cui , Long Li , Alexander Duyck , kernel-team@meta.com, Edward Cree , Brett Creeley Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org, oss-drivers@corigine.com, linux-hyperv@vger.kernel.org, linux-net-drivers@amd.com, Breno Leitao X-Mailer: b4 0.15-dev-47773 X-Developer-Signature: v=1; a=openpgp-sha256; l=2883; i=leitao@debian.org; h=from:subject:message-id; bh=bJbfYoi9ePT6GJvQe190QXenIvJlnJbG5gCYyHOYLyw=; b=owEBbAKT/ZANAwAIATWjk5/8eHdtAcsmYgBpcPchCHxqClAg62HFeFAbMUPfCD84HYKp+kg8Y i/NEdAJ4MWJAjIEAAEIAB0WIQSshTmm6PRnAspKQ5s1o5Of/Hh3bQUCaXD3IQAKCRA1o5Of/Hh3 bbMSD/YiyXHZnrDbsbyzXsekkJF8wGQm8LZpBCwBjpqlmXQJrnLP0W0wE13XKmuWQhINTucgY3l PLMJW6H0Rv+97H/qPjnapi09wOKxEJysm6NkE3uq3qitja+AdkOsgnBUd7R10UYGND+Yd43LQAO bUYb5VeMFLVU7SNfdOIKO0ktpnbuUFXKXRlFEL0w+5q+EOpJShFdb8l65n+SCKgK/4m1uyBPLZj xpZ9LOf4hl45EsABkRQIXGc71tBlqtpvcyzo0lltZHa0FNpTEu9e93bmRGK8GmFLqlSFu3Vh6su KLRcTkll/+NlBneEbd3uqlHMVPBFMkQ64C6Cs28/69w+DzcvXwnQxJfS8ATSui5GtibOsp3yM61 bZuApi8NGJCBQ+gBaKgnqfu2qXZyZdyENmAZ6/S7bRbB5ZWUmC1rwCn1ZvTkOoXPp4J7ehwKgaO m756KVYP65F4DbsAoEc0LaaiFORa7OxJ3rhk4bztDt+8Av7/sUFwlhSfC4dmujMkSIiM/1noxWR 5K5MqZYwQlxWzz7wd2hjSDbGC1bYtTXOazDO7a8jCACSdoDwEty0/sIiDu4yzto73wKAwoNCPZr mdQYldtkShmobp6SldWy1h2ELbmREQkeuvxCClQAAFYNBxMHg78eNSNOLgLe7EnFkmLvFAQablG d06e/Vh/5IkuC X-Developer-Key: i=leitao@debian.org; a=openpgp; fpr=AC8539A6E8F46702CA4A439B35A3939FFC78776D Use the newly introduced .get_rx_ring_count ethtool ops callback instead of handling ETHTOOL_GRXRINGS directly in .get_rxnfc(). Since ETHTOOL_GRXRINGS was the only command handled by be_get_rxnfc(), remove the function entirely. Since the be_multi_rxq() check in be_get_rxnfc() previously blocked RSS configuration on single-queue setups (via ethtool core validation), add an equivalent check to be_set_rxfh() to preserve this behavior, as suggested by Jakub. Signed-off-by: Breno Leitao --- drivers/net/ethernet/emulex/benet/be_ethtool.c | 37 ++++++++++------------= ---- 1 file changed, 14 insertions(+), 23 deletions(-) diff --git a/drivers/net/ethernet/emulex/benet/be_ethtool.c b/drivers/net/e= thernet/emulex/benet/be_ethtool.c index f55f1fd5d90fd..87dbbd5b7f4e6 100644 --- a/drivers/net/ethernet/emulex/benet/be_ethtool.c +++ b/drivers/net/ethernet/emulex/benet/be_ethtool.c @@ -1073,6 +1073,13 @@ static void be_set_msg_level(struct net_device *netd= ev, u32 level) adapter->msg_enable =3D level; } =20 +static u32 be_get_rx_ring_count(struct net_device *netdev) +{ + struct be_adapter *adapter =3D netdev_priv(netdev); + + return adapter->num_rx_qs; +} + static int be_get_rxfh_fields(struct net_device *netdev, struct ethtool_rxfh_fields *cmd) { @@ -1117,28 +1124,6 @@ static int be_get_rxfh_fields(struct net_device *net= dev, return 0; } =20 -static int be_get_rxnfc(struct net_device *netdev, struct ethtool_rxnfc *c= md, - u32 *rule_locs) -{ - struct be_adapter *adapter =3D netdev_priv(netdev); - - if (!be_multi_rxq(adapter)) { - dev_info(&adapter->pdev->dev, - "ethtool::get_rxnfc: RX flow hashing is disabled\n"); - return -EINVAL; - } - - switch (cmd->cmd) { - case ETHTOOL_GRXRINGS: - cmd->data =3D adapter->num_rx_qs; - break; - default: - return -EINVAL; - } - - return 0; -} - static int be_set_rxfh_fields(struct net_device *netdev, const struct ethtool_rxfh_fields *cmd, struct netlink_ext_ack *extack) @@ -1293,6 +1278,12 @@ static int be_set_rxfh(struct net_device *netdev, u8 *hkey =3D rxfh->key; u8 rsstable[RSS_INDIR_TABLE_LEN]; =20 + if (!be_multi_rxq(adapter)) { + dev_info(&adapter->pdev->dev, + "ethtool::set_rxfh: RX flow hashing is disabled\n"); + return -EINVAL; + } + /* We do not allow change in unsupported parameters */ if (rxfh->hfunc !=3D ETH_RSS_HASH_NO_CHANGE && rxfh->hfunc !=3D ETH_RSS_HASH_TOP) @@ -1441,7 +1432,7 @@ const struct ethtool_ops be_ethtool_ops =3D { .get_ethtool_stats =3D be_get_ethtool_stats, .flash_device =3D be_do_flash, .self_test =3D be_self_test, - .get_rxnfc =3D be_get_rxnfc, + .get_rx_ring_count =3D be_get_rx_ring_count, .get_rxfh_fields =3D be_get_rxfh_fields, .set_rxfh_fields =3D be_set_rxfh_fields, .get_rxfh_indir_size =3D be_get_rxfh_indir_size, --=20 2.47.3