Commit 0dd765fa authored by Sankararaman Jayaraman's avatar Sankararaman Jayaraman Committed by Jakub Kicinski
Browse files

vmxnet3: unregister xdp rxq info in the reset path



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: 54f00cce ("vmxnet3: Add XDP support.")
Signed-off-by: default avatarSankararaman Jayaraman <sankararaman.jayaraman@broadcom.com>
Signed-off-by: default avatarRonak Doshi <ronak.doshi@broadcom.com>
Link: https://patch.msgid.link/20250320045522.57892-1-sankararaman.jayaraman@broadcom.com


Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parent e1cd42a2
Loading
Loading
Loading
Loading
+5 −5
Original line number Diff line number Diff line
@@ -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,