From: Simon Horman <horms@kernel.org>
To: rkannoth@marvell.com
Cc: 'Simon Horman' <horms@kernel.org>,
netdev@vger.kernel.org, linux-kernel@vger.kernel.org,
sgoutham@marvell.com, davem@davemloft.net, edumazet@google.com,
kuba@kernel.org, pabeni@redhat.com, andrew+netdev@lunn.ch,
dan.carpenter@linaro.org, error27@gmail.com
Subject: Re: [PATCH net 1/3] octeontx2-af: npc: cn20k: Handle npc_mcam_idx_2_key_type() failures
Date: Sat, 18 Apr 2026 17:17:20 +0100 [thread overview]
Message-ID: <20260418161719.365039-2-horms@kernel.org> (raw)
In-Reply-To: <20260416035352.333808-2-rkannoth@marvell.com>
From: 'Simon Horman' <horms@kernel.org>
This is an AI-generated review of your patch. The human sending this
email has considered the AI review valid, or at least plausible.
Full review at: https://sashiko.dev
---
octeontx2-af: npc: cn20k: Handle npc_mcam_idx_2_key_type() failures
This commit adds error checking to npc_mcam_idx_2_key_type() calls.
It returns early from several void functions to prevent programming
or interpreting MCAM state with an invalid key type.
Link: https://lore.kernel.org/netdev/adiQJvuKlEhq2ILx@stanley.mountain/
> diff --git a/drivers/net/ethernet/marvell/octeontx2/af/cn20k/npc.c b/drivers/net/ethernet/marvell/octeontx2/af/cn20k/npc.c
> index 7291fdb89b03f..2fcd0ee2b1e10 100644
> --- a/drivers/net/ethernet/marvell/octeontx2/af/cn20k/npc.c
> +++ b/drivers/net/ethernet/marvell/octeontx2/af/cn20k/npc.c
[ ... ]
> @@ -1052,10 +1054,12 @@ void npc_cn20k_config_mcam_entry(struct rvu *rvu, int blkaddr, int index,
> int kw = 0;
> u8 kw_type;
>
> + if (npc_mcam_idx_2_key_type(rvu, index, &kw_type))
> + return;
> +
> /* Disable before mcam entry update */
> npc_cn20k_enable_mcam_entry(rvu, blkaddr, index, false);
>
Does returning early from a void function here cause state desynchronization?
For example, in mailbox handlers like
rvu_mbox_handler_npc_cn20k_mcam_write_entry(), the caller assumes success
and returns 0, but the hardware programming would be silently aborted.
[ ... ]
> @@ -1132,8 +1136,13 @@ void npc_cn20k_copy_mcam_entry(struct rvu *rvu, int blkaddr, u16 src, u16 dest)
>
> dbank = npc_get_bank(mcam, dest);
> sbank = npc_get_bank(mcam, src);
> - npc_mcam_idx_2_key_type(rvu, src, &src_kwtype);
> - npc_mcam_idx_2_key_type(rvu, dest, &dest_kwtype);
> +
> + if (npc_mcam_idx_2_key_type(rvu, src, &src_kwtype))
> + return;
> +
If this copy is skipped, could callers like npc_cn20k_defrag() unconditionally
enable the target entry with stale hardware state?
[ ... ]
> @@ -1188,7 +1197,8 @@ void npc_cn20k_read_mcam_entry(struct rvu *rvu, int blkaddr, u16 index,
> int kw = 0, bank;
> u8 kw_type;
>
> - npc_mcam_idx_2_key_type(rvu, index, &kw_type);
> + if (npc_mcam_idx_2_key_type(rvu, index, &kw_type))
> + return;
Could this leave caller variables uninitialized?
If a function like npc_update_dmac_value() passes an uninitialized u8 intf
parameter on the stack, and this function returns early, the caller might
branch on garbage data when later calling is_npc_intf_tx(intf).
Would it make sense to refactor these functions to return an int so that
failures can be propagated and gracefully handled by the callers?
next prev parent reply other threads:[~2026-04-18 16:18 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-04-16 3:53 [PATCH net 0/3] octeontx2-af: Fix smatch reported errors Ratheesh Kannoth
2026-04-16 3:53 ` [PATCH net 1/3] octeontx2-af: npc: cn20k: Handle npc_mcam_idx_2_key_type() failures Ratheesh Kannoth
2026-04-16 8:08 ` Dan Carpenter
2026-04-18 16:17 ` Simon Horman [this message]
2026-04-16 3:53 ` [PATCH net 2/3] octeontx2-af: npc: cn20k: Drop debugfs_create_file() error checks in init Ratheesh Kannoth
2026-04-18 16:20 ` Simon Horman
2026-04-16 3:53 ` [PATCH net 3/3] octeontx2-af: npc: cn20k: Return error when defrag rollback free fails Ratheesh Kannoth
2026-04-18 16:18 ` Simon Horman
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260418161719.365039-2-horms@kernel.org \
--to=horms@kernel.org \
--cc=andrew+netdev@lunn.ch \
--cc=dan.carpenter@linaro.org \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=error27@gmail.com \
--cc=kuba@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=rkannoth@marvell.com \
--cc=sgoutham@marvell.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.