]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
vmxnet3: unregister xdp rxq info in the reset path
authorSankararaman Jayaraman <sankararaman.jayaraman@broadcom.com>
Thu, 20 Mar 2025 04:55:22 +0000 (10:25 +0530)
committerJakub Kicinski <kuba@kernel.org>
Tue, 25 Mar 2025 14:39:08 +0000 (07:39 -0700)
vmxnet3 does not unregister xdp rxq info in the
vmxnet3_reset_work() code path as vmxnet3_rq_destroy()
is not invoked in this code path. So, we get below message with a
backtrace.

Missing unregister, handled but fix driver
WARNING: CPU:48 PID: 500 at net/core/xdp.c:182
__xdp_rxq_info_reg+0x93/0xf0

This patch fixes the problem by moving the unregister
code of XDP from vmxnet3_rq_destroy() to vmxnet3_rq_cleanup().

Fixes: 54f00cce1178 ("vmxnet3: Add XDP support.")
Signed-off-by: Sankararaman Jayaraman <sankararaman.jayaraman@broadcom.com>
Signed-off-by: Ronak Doshi <ronak.doshi@broadcom.com>
Link: https://patch.msgid.link/20250320045522.57892-1-sankararaman.jayaraman@broadcom.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/vmxnet3/vmxnet3_drv.c

index 6793fa09f9d1ad92880dc739a86ff106e4741e1f..3df6aabc7e339e675679140d5105639d8df227d9 100644 (file)
@@ -2033,6 +2033,11 @@ vmxnet3_rq_cleanup(struct vmxnet3_rx_queue *rq,
 
        rq->comp_ring.gen = VMXNET3_INIT_GEN;
        rq->comp_ring.next2proc = 0;
+
+       if (xdp_rxq_info_is_reg(&rq->xdp_rxq))
+               xdp_rxq_info_unreg(&rq->xdp_rxq);
+       page_pool_destroy(rq->page_pool);
+       rq->page_pool = NULL;
 }
 
 
@@ -2073,11 +2078,6 @@ static void vmxnet3_rq_destroy(struct vmxnet3_rx_queue *rq,
                }
        }
 
-       if (xdp_rxq_info_is_reg(&rq->xdp_rxq))
-               xdp_rxq_info_unreg(&rq->xdp_rxq);
-       page_pool_destroy(rq->page_pool);
-       rq->page_pool = NULL;
-
        if (rq->data_ring.base) {
                dma_free_coherent(&adapter->pdev->dev,
                                  rq->rx_ring[0].size * rq->data_ring.desc_size,