From: Erni Sri Satya Vennela <ernis@linux•microsoft.com>
To: kys@microsoft•com, haiyangz@microsoft•com, wei.liu@kernel•org,
decui@microsoft•com, longli@microsoft•com, andrew+netdev@lunn•ch,
davem@davemloft•net, edumazet@google•com, kuba@kernel•org,
pabeni@redhat•com, ernis@linux•microsoft.com,
ssengar@linux•microsoft.com, dipayanroy@linux•microsoft.com,
gargaditya@linux•microsoft.com, shirazsaleem@microsoft•com,
kees@kernel•org, kotaranov@microsoft•com, leon@kernel•org,
shacharr@microsoft•com, stephen@networkplumber•org,
linux-hyperv@vger•kernel.org, netdev@vger•kernel.org,
linux-kernel@vger•kernel.org
Subject: [PATCH net v3 5/5] net: mana: Fix EQ leak in mana_remove on NULL port
Date: Wed, 15 Apr 2026 01:09:41 -0700 [thread overview]
Message-ID: <20260415080944.732901-6-ernis@linux.microsoft.com> (raw)
In-Reply-To: <20260415080944.732901-1-ernis@linux.microsoft.com>
In mana_remove(), when a NULL port is encountered in the port iteration
loop, 'goto out' skips the mana_destroy_eq(ac) call, leaking the event
queues allocated earlier by mana_create_eq().
This can happen when mana_probe_port() fails for port 0, leaving
ac->ports[0] as NULL. On driver unload or error cleanup, mana_remove()
hits the NULL entry and jumps past mana_destroy_eq().
Change 'goto out' to 'break' so the for-loop exits normally and
mana_destroy_eq() is always reached. Remove the now-unreferenced out:
label.
Fixes: 1e2d0824a9c3 ("net: mana: Add support for EQ sharing")
Signed-off-by: Erni Sri Satya Vennela <ernis@linux•microsoft.com>
---
Changes in v3;
* Update Fixes tag to appropriate commit id.
Changes in v2:
* Apply the patch in net instead of net-next.
---
drivers/net/ethernet/microsoft/mana/mana_en.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/net/ethernet/microsoft/mana/mana_en.c b/drivers/net/ethernet/microsoft/mana/mana_en.c
index 39b18577fb51..98e2fcc797ca 100644
--- a/drivers/net/ethernet/microsoft/mana/mana_en.c
+++ b/drivers/net/ethernet/microsoft/mana/mana_en.c
@@ -3752,7 +3752,7 @@ void mana_remove(struct gdma_dev *gd, bool suspending)
if (!ndev) {
if (i == 0)
dev_err(dev, "No net device to remove\n");
- goto out;
+ break;
}
apc = netdev_priv(ndev);
@@ -3783,7 +3783,7 @@ void mana_remove(struct gdma_dev *gd, bool suspending)
}
mana_destroy_eq(ac);
-out:
+
if (ac->per_port_queue_reset_wq) {
destroy_workqueue(ac->per_port_queue_reset_wq);
ac->per_port_queue_reset_wq = NULL;
--
2.34.1
prev parent reply other threads:[~2026-04-15 8:09 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-04-15 8:09 [PATCH net v3 0/5] net: mana: Fix probe/remove error path bugs Erni Sri Satya Vennela
2026-04-15 8:09 ` [PATCH net v3 1/5] net: mana: Init link_change_work before potential error paths in probe Erni Sri Satya Vennela
2026-04-17 14:08 ` Simon Horman
2026-04-15 8:09 ` [PATCH net v3 2/5] net: mana: Init gf_stats_work " Erni Sri Satya Vennela
2026-04-17 14:08 ` Simon Horman
2026-04-15 8:09 ` [PATCH net v3 3/5] net: mana: Guard mana_remove against double invocation Erni Sri Satya Vennela
2026-04-17 14:09 ` Simon Horman
2026-04-20 12:45 ` Erni Sri Satya Vennela
2026-04-15 8:09 ` [PATCH net v3 4/5] net: mana: Don't overwrite port probe error with add_adev result Erni Sri Satya Vennela
2026-04-17 14:10 ` Simon Horman
2026-04-20 12:45 ` Erni Sri Satya Vennela
2026-04-15 8:09 ` Erni Sri Satya Vennela [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260415080944.732901-6-ernis@linux.microsoft.com \
--to=ernis@linux$(echo .)microsoft.com \
--cc=andrew+netdev@lunn$(echo .)ch \
--cc=davem@davemloft$(echo .)net \
--cc=decui@microsoft$(echo .)com \
--cc=dipayanroy@linux$(echo .)microsoft.com \
--cc=edumazet@google$(echo .)com \
--cc=gargaditya@linux$(echo .)microsoft.com \
--cc=haiyangz@microsoft$(echo .)com \
--cc=kees@kernel$(echo .)org \
--cc=kotaranov@microsoft$(echo .)com \
--cc=kuba@kernel$(echo .)org \
--cc=kys@microsoft$(echo .)com \
--cc=leon@kernel$(echo .)org \
--cc=linux-hyperv@vger$(echo .)kernel.org \
--cc=linux-kernel@vger$(echo .)kernel.org \
--cc=longli@microsoft$(echo .)com \
--cc=netdev@vger$(echo .)kernel.org \
--cc=pabeni@redhat$(echo .)com \
--cc=shacharr@microsoft$(echo .)com \
--cc=shirazsaleem@microsoft$(echo .)com \
--cc=ssengar@linux$(echo .)microsoft.com \
--cc=stephen@networkplumber$(echo .)org \
--cc=wei.liu@kernel$(echo .)org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox