[PATCH] net/bnxt: fix unintialized warning
Ajit Khaparde
ajit.khaparde at broadcom.com
Fri Nov 21 20:24:33 CET 2025
On Fri, Nov 14, 2025 at 10:52 AM Stephen Hemminger
<stephen at networkplumber.org> wrote:
>
> With gcc-16 it inlines a lot more code and creates a warnings
> where it thinks it might be manipulating bits that are not set.
> It looks like this is because the bits in control word (cword)
> in theory could be larger than the variable. Should not
> be possible because wc_ctl_size_bits is only set to 3, 16, or 32
> but that happens outside of the scope of these functions.
>
> Resolve by adding bounds check which compiler sees and knows
> the loop will only see those bits.
>
> In function ‘ulp_bs_push_msb’,
> inlined from ‘ulp_blob_push’ at ../drivers/net/bnxt/tf_ulp/ulp_utils.h:407:8,
> inlined from ‘ulp_blob_push_32’ at ../drivers/net/bnxt/tf_ulp/ulp_utils.h:551:7,
> inlined from ‘ulp_mapper_wc_tcam_tbl_dyn_post_process’ at ../drivers/net/bnxt/tf_ulp/ulp_mapper.c:2487:9:
> ../drivers/net/bnxt/tf_ulp/ulp_utils.h:336:17: warning: ‘cword’ may be used uninitialized [-Wmaybe-uninitialized]
> 336 | ulp_bs_put_msb(bs, pos, 8, val[i]);
> | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> ../drivers/net/bnxt/tf_ulp/ulp_mapper.c: In function ‘ulp_mapper_wc_tcam_tbl_dyn_post_process’:
> ../drivers/net/bnxt/tf_ulp/ulp_mapper.c:2443:18: note: ‘cword’ declared here
> 2443 | uint32_t cword, i, rc;
> | ^~~~~
>
> Bugzilla ID: 1821
> Fixes: 3fe124d2536c ("net/bnxt: support Thor platform")
> Cc: stable at dpdk.org
>
> Signed-off-by: Stephen Hemminger <stephen at networkplumber.org>
Acked-by: Ajit Khaparde <ajit.khaparde at broadcom.com>
> ---
> drivers/net/bnxt/tf_ulp/ulp_mapper.c | 5 +++++
> drivers/net/bnxt/tf_ulp/ulp_mapper_tfc.c | 4 ++++
> 2 files changed, 9 insertions(+)
>
> diff --git a/drivers/net/bnxt/tf_ulp/ulp_mapper.c b/drivers/net/bnxt/tf_ulp/ulp_mapper.c
> index 0ff952950b..960cdda311 100644
> --- a/drivers/net/bnxt/tf_ulp/ulp_mapper.c
> +++ b/drivers/net/bnxt/tf_ulp/ulp_mapper.c
> @@ -2446,6 +2446,11 @@ ulp_mapper_wc_tcam_tbl_dyn_post_process(struct bnxt_ulp_device_params *dparms,
>
> slice_width = dparms->wc_slice_width;
> clen = dparms->wc_ctl_size_bits;
> + if (clen > 32) {
> + BNXT_DRV_DBG(ERR, "Key size bits %d too large\n", clen);
> + return -EINVAL;
> + }
> +
> max_slices = dparms->wc_max_slices;
> blen = ulp_blob_data_len_get(key);
>
> diff --git a/drivers/net/bnxt/tf_ulp/ulp_mapper_tfc.c b/drivers/net/bnxt/tf_ulp/ulp_mapper_tfc.c
> index f99698a1d8..2d89f10d5e 100644
> --- a/drivers/net/bnxt/tf_ulp/ulp_mapper_tfc.c
> +++ b/drivers/net/bnxt/tf_ulp/ulp_mapper_tfc.c
> @@ -90,6 +90,10 @@ ulp_mapper_tfc_wc_tcam_post_process(struct bnxt_ulp_device_params *dparms,
>
> slice_width = dparms->wc_slice_width;
> clen = dparms->wc_ctl_size_bits;
> + if (clen > 32) {
> + BNXT_DRV_DBG(ERR, "Key size bits %d too large\n", clen);
> + return -EINVAL;
> + }
> max_slices = dparms->wc_max_slices;
> blen = ulp_blob_data_len_get(key);
>
> --
> 2.51.0
>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 5479 bytes
Desc: S/MIME Cryptographic Signature
URL: <http://mails.dpdk.org/archives/stable/attachments/20251121/4cfca0d4/attachment.bin>
More information about the stable
mailing list