> On Mon, Mar 23, 2026 at 01:10:56PM -0700, Long Li wrote:
> > 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.
> > 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: [email protected]
> > Signed-off-by: Long Li <[email protected]>
> > ---
> > 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-
> [email protected]/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 <[email protected]>
> ---
> 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