RE: [EXTERNAL] Re: [PATCH rdma v2] RDMA/mana_ib: Disable RX steering on RSS QP destroy
From: Long Li <longli@microsoft.com>
Date: 2026-03-25 19:42:57
Also in:
linux-hyperv, linux-rdma, lkml, stable
On Mon, Mar 23, 2026 at 01:10:56PM -0700, Long Li wrote:quoted
When an RSS QP is destroyed (e.g. DPDK exit), mana_ib_destroy_qp_rss() destroys the RX WQ objects but does not disable vPort RX steering in firmware. This leaves stale steering configuration that still points to the destroyed RX objects. If traffic continues to arrive (e.g. peer VM is still transmitting) and the VF interface is subsequently brought up (mana_open), the firmware may deliver completions using stale CQ IDs from the old RXobjects.quoted
These CQ IDs can be reused by the ethernet driver for new TX CQs, causing RX completions to land on TX CQs: WARNING: mana_poll_tx_cq+0x1b8/0x220 [mana] (is_sq == false) WARNING: mana_gd_process_eq_events+0x209/0x290 (cq_table lookup fails) Fix this by disabling vPort RX steering before destroying RX WQ objects. Note that mana_fence_rqs() cannot be used here because the fence completion is delivered on the CQ, which is polled by user-mode (e.g. DPDK) and not visible to the kernel driver. Refactor the disable logic into a shared mana_disable_vport_rx() in mana_en, exported for use by mana_ib, replacing the duplicate code. The ethernet driver's mana_dealloc_queues() is also updated to call this common function. Fixes: 0266a177631d ("RDMA/mana_ib: Add a driver for Microsoft Azure Network Adapter") Cc: stable@vger.kernel.org Signed-off-by: Long Li <longli@microsoft.com> --- v2: - Removed redundant ibdev_err on mana_disable_vport_rx() failure as mana_cfg_vport_steering() already logs all failure scenarios. - Added comment clarifying this is best effort. drivers/infiniband/hw/mana/qp.c | 15 +++++++++++++++ drivers/net/ethernet/microsoft/mana/mana_en.c | 11 ++++++++++- include/net/mana/mana.h | 1 + 3 files changed, 26 insertions(+), 1 deletion(-)It doesn't apply to rdma-rc.
Sorry for the mistake. I have rebased it to rdma for-rc. Thanks, Long
Looking up https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Flore. kernel.org%2Fall%2F20260323201106.1768705-1- longli%40microsoft.com%2F&data=05%7C02%7Clongli%40microsoft.com%7 Cf884f054e1bd45e83ae808de8a4edeeb%7C72f988bf86f141af91ab2d7cd0 11db47%7C1%7C0%7C639100268646867690%7CUnknown%7CTWFpbGZs b3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIs IkFOIjoiTWFpbCIsIldUIjoyfQ%3D%3D%7C0%7C%7C%7C&sdata=6saLMRy7P Ck6nvTomdtqYFzc6iX%2FC50UG9YnfN0HILc%3D&reserved=0 Grabbing thread from lore.kernel.org/all/20260323201106.1768705-1- longli@microsoft.com/t.mbox.gz Checking for newer revisions Grabbing search results from lore.kernel.org Analyzing 3 messages in the thread Looking for additional code-review trailers on lore.kernel.org Analyzing 0 code-review messages Checking attestation on all messages, may take a moment... --- [PATCH v2] RDMA/mana_ib: Disable RX steering on RSS QP destroy + Link: https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fpatc h.msgid.link%2F20260323201106.1768705-1- longli%40microsoft.com&data=05%7C02%7Clongli%40microsoft.com%7Cf88 4f054e1bd45e83ae808de8a4edeeb%7C72f988bf86f141af91ab2d7cd011d b47%7C1%7C0%7C639100268646881774%7CUnknown%7CTWFpbGZsb3d 8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkF OIjoiTWFpbCIsIldUIjoyfQ%3D%3D%7C0%7C%7C%7C&sdata=frtDMKrk5c3xz 8FOgRy5UM2HbpeTUBXcuwGTbw3k33w%3D&reserved=0 + Signed-off-by: Leon Romanovsky [off-list ref] --- NOTE: install dkimpy for DKIM signature verification --- Total patches: 1 --- Applying: RDMA/mana_ib: Disable RX steering on RSS QP destroy Patch failed at 0001 RDMA/mana_ib: Disable RX steering on RSS QP destroy error: patch failed: drivers/net/ethernet/microsoft/mana/mana_en.c:3339 error: drivers/net/ethernet/microsoft/mana/mana_en.c: patch does not apply hint: Use 'git am --show-current-patch=diff' to see the failed patch hint: When you have resolved this problem, run "git am --continue". hint: If you prefer to skip this patch, run "git am --skip" instead. hint: To restore the original branch and stop patching, run "git am --abort". hint: Disable this message with "git config set advice.mergeConflict false" Press any key to continue... Thanks