<div dir="ltr"><div dir="ltr"><br></div><br><div class="gmail_quote gmail_quote_container"><div dir="ltr" class="gmail_attr">On Tue, Sep 15, 2026 at 4:48 AM Evgeny Sokolov <<a href="mailto:Evgeny.Sokolov@infotecs.ru">Evgeny.Sokolov@infotecs.ru</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">From: Sokolov Evgeny <<a href="mailto:Evgeny.Sokolov@infotecs.ru" target="_blank">Evgeny.Sokolov@infotecs.ru</a>><br>
<br>
The MPC channel enable bitmap is cleared before it is used to build<br>
the channel mask. As a result, no channels are selected for disable.<br>
<br>
Preserve the bitmap before clearing it and use the saved value when<br>
building the channel mask.<br>
<br>
Found by InfoTeCS on behalf of Linux Verification Center (<a href="http://linuxtesting.org" rel="noreferrer" target="_blank">linuxtesting.org</a>) with SVACE.<br>
<br>
Fixes: 80317ff6adf ("net/bnxt/tf_core: support Thor2")<br>
Cc: <a href="mailto:stable@dpdk.org" target="_blank">stable@dpdk.org</a><br>
<br>
Signed-off-by: Sokolov Evgeny <<a href="mailto:Evgeny.Sokolov@infotecs.ru" target="_blank">Evgeny.Sokolov@infotecs.ru</a>><br>
---<br></blockquote><div><span style="font-family:Calibri;font-size:11pt;background-color:transparent">Acked-by:  Kishore
Padmanabha <<a href="mailto:kishore.padmanabha@broadcom.com">kishore.padmanabha@broadcom.com</a>></span></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
 drivers/net/bnxt/bnxt_mpc.c | 4 +++-<br>
 1 file changed, 3 insertions(+), 1 deletion(-)<br>
<br>
diff --git a/drivers/net/bnxt/bnxt_mpc.c b/drivers/net/bnxt/bnxt_mpc.c<br>
index d77f9dd308..1398321ca7 100644<br>
--- a/drivers/net/bnxt/bnxt_mpc.c<br>
+++ b/drivers/net/bnxt/bnxt_mpc.c<br>
@@ -48,18 +48,20 @@ static int bnxt_mpc_chnls_enable(struct bnxt *bp)<br>
 static int bnxt_mpc_chnls_disable(struct bnxt *bp)<br>
 {<br>
        struct bnxt_mpc *mpc = bp->mpc;<br>
+       uint8_t mpc_chnl_flg;<br>
        uint8_t mpc_chnl_msk = 0;<br>
        int i, rc;<br>
<br>
        if (!mpc)<br>
                return -EINVAL;<br>
+       mpc_chnl_flg = mpc->mpc_chnls_en;<br>
        mpc->mpc_chnls_en = 0;<br>
<br>
        if (!BNXT_PF(bp))<br>
                return 0;<br>
<br>
        for (i = 0; i < BNXT_MPC_CHNL_MAX; i++) {<br>
-               if (!(mpc->mpc_chnls_en & (1 << i)))<br>
+               if (!(mpc_chnl_flg & (1 << i)))<br>
                        continue;<br>
                mpc_chnl_msk |= (1 << i);<br>
        }<br>
-- <br>
2.30.2<br>
<br>
</blockquote></div></div>