eth: bnxt: pad out the correct indirection table
authorJakub Kicinski <kuba@kernel.org>
Thu, 11 Jul 2024 22:07:11 +0000 (15:07 -0700)
committerJakub Kicinski <kuba@kernel.org>
Sat, 13 Jul 2024 05:16:23 +0000 (22:16 -0700)
bnxt allocates tables of max size, and changes the used size
based on number of active rings. The unused entries get padded
out with zeros. bnxt_modify_rss() seems to always pad out
the table of the main / default RSS context, instead of
the table of the modified context.

I haven't observed any behavior change due to this patch,
so I don't think it's a fix. Not entirely sure what role
the padding plays, 0 is a valid queue ID.

Reviewed-by: Pavan Chebbi <pavan.chebbi@broadcom.com>
Link: https://patch.msgid.link/20240711220713.283778-10-kuba@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c

index 7476558..8c30f74 100644 (file)
@@ -1856,7 +1856,7 @@ static void bnxt_modify_rss(struct bnxt *bp, struct bnxt_rss_ctx *rss_ctx,
                        indir_tbl[i] = rxfh->indir[i];
                pad = bp->rss_indir_tbl_entries - tbl_size;
                if (pad)
-                       memset(&bp->rss_indir_tbl[i], 0, pad * sizeof(u16));
+                       memset(&indir_tbl[i], 0, pad * sizeof(u16));
        }
 }