Skip to content

Commit 45b0c38

Browse files
committed
Merge: vmxnet3: tx queue race condition with XDP redirect
MR: https://gitlab.com/redhat/centos-stream/src/kernel/centos-stream-10/-/merge_requests/918 JIRA: https://issues.redhat.com/browse/RHEL-92474 ``` commit 0dd765f Author: Sankararaman Jayaraman <sankararaman.jayaraman@broadcom.com> Date: Thu Mar 20 10:25:22 2025 +0530 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: 54f00cc ("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> ``` Signed-off-by: CKI Backport Bot <cki-ci-bot+cki-gitlab-backport-bot@redhat.com> --- <small>Created 2025-05-19 14:03 UTC by backporter - [KWF FAQ](https://red.ht/kernel_workflow_doc) - [Slack #team-kernel-workflow](https://redhat-internal.slack.com/archives/C04LRUPMJQ5) - [Source](https://gitlab.com/cki-project/kernel-workflow/-/blob/main/webhook/utils/backporter.py) - [Documentation](https://gitlab.com/cki-project/kernel-workflow/-/blob/main/docs/README.backporter.md) - [Report an issue](https://issues.redhat.com/secure/CreateIssueDetails!init.jspa?pid=12334433&issuetype=1&priority=4&summary=backporter+webhook+issue&components=kernel-workflow+/+backporter)</small> Approved-by: Izabela Bakollari <ibakolla@redhat.com> Approved-by: José Ignacio Tornos Martínez <jtornosm@redhat.com> Approved-by: mheib <mheib@redhat.com> Approved-by: CKI KWF Bot <cki-ci-bot+kwf-gitlab-com@redhat.com> Merged-by: Julio Faracco <jfaracco@redhat.com>
2 parents 4d96327 + a7df9b6 commit 45b0c38

File tree

1 file changed

+5
-5
lines changed

1 file changed

+5
-5
lines changed

drivers/net/vmxnet3/vmxnet3_drv.c

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2025,6 +2025,11 @@ vmxnet3_rq_cleanup(struct vmxnet3_rx_queue *rq,
20252025

20262026
rq->comp_ring.gen = VMXNET3_INIT_GEN;
20272027
rq->comp_ring.next2proc = 0;
2028+
2029+
if (xdp_rxq_info_is_reg(&rq->xdp_rxq))
2030+
xdp_rxq_info_unreg(&rq->xdp_rxq);
2031+
page_pool_destroy(rq->page_pool);
2032+
rq->page_pool = NULL;
20282033
}
20292034

20302035

@@ -2065,11 +2070,6 @@ static void vmxnet3_rq_destroy(struct vmxnet3_rx_queue *rq,
20652070
}
20662071
}
20672072

2068-
if (xdp_rxq_info_is_reg(&rq->xdp_rxq))
2069-
xdp_rxq_info_unreg(&rq->xdp_rxq);
2070-
page_pool_destroy(rq->page_pool);
2071-
rq->page_pool = NULL;
2072-
20732073
if (rq->data_ring.base) {
20742074
dma_free_coherent(&adapter->pdev->dev,
20752075
rq->rx_ring[0].size * rq->data_ring.desc_size,

0 commit comments

Comments
 (0)