The MCS count is a maximum successful ID plus one, not proof of a dense device set. Validate the complete range before programming any block, so a failed lower-ID probe cannot cause a NULL dereference. Detected by static analysis and reviewed with AI-assisted source auditing. Fixes: 080bbd19c9dd ("octeontx2-af: cn10k: mcs: Add mailboxes for port related operations") Assisted-by: LLM Signed-off-by: Slavin Liu --- drivers/net/ethernet/marvell/octeontx2/af/mcs_rvu_if.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/drivers/net/ethernet/marvell/octeontx2/af/mcs_rvu_if.c b/drivers/net/ethernet/marvell/octeontx2/af/mcs_rvu_if.c index fce22e314cac..0ee2d0d698e5 100644 --- a/drivers/net/ethernet/marvell/octeontx2/af/mcs_rvu_if.c +++ b/drivers/net/ethernet/marvell/octeontx2/af/mcs_rvu_if.c @@ -889,6 +889,11 @@ int rvu_mcs_init(struct rvu *rvu) rvu_mcs_set_lmac_bmap(rvu); } + for (mcs_id = 0; mcs_id < rvu->mcs_blk_cnt; mcs_id++) { + if (!mcs_get_pdata(mcs_id)) + return -ENODEV; + } + /* Install default tcam bypass entry and set port to operational mode */ for (mcs_id = 0; mcs_id < rvu->mcs_blk_cnt; mcs_id++) { mcs = mcs_get_pdata(mcs_id);