Thread (3 messages) 3 messages, 2 authors, 2026-03-25

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 RX
objects.
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
  
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help