]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
bnxt_en: Fix RSS table size check when changing ethtool channels
authorPavan Chebbi <pavan.chebbi@broadcom.com>
Fri, 6 Mar 2026 22:58:54 +0000 (14:58 -0800)
committerJakub Kicinski <kuba@kernel.org>
Tue, 10 Mar 2026 02:49:47 +0000 (19:49 -0700)
When changing channels, the current check in bnxt_set_channels()
is not checking for non-default RSS contexts when the RSS table size
changes. The current check for IFF_RXFH_CONFIGURED is only sufficient
for the default RSS context. Expand the check to include the presence
of any non-default RSS contexts.

Allowing such change will result in incorrect configuration of the
context's RSS table when the table size changes.

Fixes: b3d0083caf9a ("bnxt_en: Support RSS contexts in ethtool .{get|set}_rxfh()")
Reported-by: Björn Töpel <bjorn@kernel.org>
Link: https://lore.kernel.org/netdev/20260303181535.2671734-1-bjorn@kernel.org/
Reviewed-by: Andy Gospodarek <andrew.gospodarek@broadcom.com>
Signed-off-by: Pavan Chebbi <pavan.chebbi@broadcom.com>
Signed-off-by: Michael Chan <michael.chan@broadcom.com>
Link: https://patch.msgid.link/20260306225854.3575672-1-michael.chan@broadcom.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c

index ba47e8294fffac3d78fd3f90f240830579f76587..28d0ece2e7b1fbf203496b94027d090e59c5b348 100644 (file)
@@ -979,8 +979,8 @@ static int bnxt_set_channels(struct net_device *dev,
 
        if (bnxt_get_nr_rss_ctxs(bp, req_rx_rings) !=
            bnxt_get_nr_rss_ctxs(bp, bp->rx_nr_rings) &&
-           netif_is_rxfh_configured(dev)) {
-               netdev_warn(dev, "RSS table size change required, RSS table entries must be default to proceed\n");
+           (netif_is_rxfh_configured(dev) || bp->num_rss_ctx)) {
+               netdev_warn(dev, "RSS table size change required, RSS table entries must be default (with no additional RSS contexts present) to proceed\n");
                return -EINVAL;
        }