From: Jie Liu <[email protected]>

sxe2_rxq_intr_unregister() frees irq_ctxt->rxq_event_fd outside the
rxq_event_fd NULL check. Move the free and NULL assignment inside the
guard so the buffer is only released when it was allocated.

Fixes: 8cebf80f1e ("net/sxe2: support Rx interrupt")
Cc: [email protected]
Cc: [email protected]
Signed-off-by: Jie Liu <[email protected]>
---
 drivers/net/sxe2/sxe2_irq.c | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/drivers/net/sxe2/sxe2_irq.c b/drivers/net/sxe2/sxe2_irq.c
index 53d49a4246..7fe500b229 100644
--- a/drivers/net/sxe2/sxe2_irq.c
+++ b/drivers/net/sxe2/sxe2_irq.c
@@ -881,12 +881,11 @@ static void sxe2_rxq_intr_unregister(struct rte_eth_dev 
*dev)
                        (void)sxe2_drv_dev_rxq_irq_set(adapter->cdev, i, &efd, 
1);
                        sxe2_rxq_intr_efd_free(irq_ctxt->rxq_event_fd[i]);
                }
+               rte_free(irq_ctxt->rxq_event_fd);
+               irq_ctxt->rxq_event_fd = NULL;
        }
-       rte_free(irq_ctxt->rxq_event_fd);
-       irq_ctxt->rxq_event_fd = NULL;
 
        rte_intr_vec_list_free(intr_handle);
-
        rte_intr_nb_efd_set(intr_handle, 0);
        rte_intr_max_intr_set(intr_handle, 0);
 }
-- 
2.52.0

Reply via email to