net/bnxt: fix corruption of session details
authorKishore Padmanabha <kishore.padmanabha@broadcom.com>
Fri, 9 Oct 2020 11:11:18 +0000 (16:41 +0530)
committerFerruh Yigit <ferruh.yigit@intel.com>
Fri, 16 Oct 2020 17:47:58 +0000 (19:47 +0200)
The session details that is shared among multiple ports
need to be outside the bnxt structure.

Fixes: 70e64b27af5b ("net/bnxt: support ULP session manager cleanup")
Cc: stable@dpdk.org
Signed-off-by: Kishore Padmanabha <kishore.padmanabha@broadcom.com>
Reviewed-by: Mike Baucom <michael.baucom@broadcom.com>
Reviewed-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
drivers/net/bnxt/tf_ulp/bnxt_ulp.c

index 2896194..a4d48c7 100644 (file)
@@ -159,7 +159,9 @@ ulp_ctx_session_open(struct bnxt *bp,
        }
        if (!session->session_opened) {
                session->session_opened = 1;
-               session->g_tfp = &bp->tfp;
+               session->g_tfp = rte_zmalloc("bnxt_ulp_session_tfp",
+                                            sizeof(struct tf), 0);
+               session->g_tfp->session = bp->tfp.session;
        }
        return rc;
 }
@@ -176,6 +178,7 @@ ulp_ctx_session_close(struct bnxt *bp,
        if (session->session_opened)
                tf_close_session(&bp->tfp);
        session->session_opened = 0;
+       rte_free(session->g_tfp);
        session->g_tfp = NULL;
 }