From: Long Li <longli@microsoft.com>
To: dev@dpdk.org
Cc: stephen@networkplumber.org, longli@microsoft.com,
weh@microsoft.com, stable@dpdk.org
Subject: [PATCH v4 3/6] net/netvsc: fix resource leak in init error path
Date: Tue, 3 Mar 2026 12:54:06 -0800 [thread overview]
Message-ID: <20260303205411.325585-4-longli@microsoft.com> (raw)
In-Reply-To: <20260303205411.325585-1-longli@microsoft.com>
The failed label in eth_hn_dev_init() does not free hv->primary or close
hv->channels[0], leaking both resources on any init failure after they
are allocated.
Additionally, the early return when hv->primary allocation fails leaks
hv->channels[0]. Change it to goto failed.
Add rte_free(hv->primary) and rte_vmbus_chan_close(hv->channels[0]) to
the failed label to properly clean up on all error paths.
Fixes: 4e9c73e96e83 ("net/netvsc: add Hyper-V network device")
Cc: stable@dpdk.org
Signed-off-by: Long Li <longli@microsoft.com>
---
drivers/net/netvsc/hn_ethdev.c | 12 +++++++++---
1 file changed, 9 insertions(+), 3 deletions(-)
diff --git a/drivers/net/netvsc/hn_ethdev.c b/drivers/net/netvsc/hn_ethdev.c
index 9f61f3a1a5..19721b4829 100644
--- a/drivers/net/netvsc/hn_ethdev.c
+++ b/drivers/net/netvsc/hn_ethdev.c
@@ -1376,8 +1376,10 @@ eth_hn_dev_init(struct rte_eth_dev *eth_dev)
hv->primary = hn_rx_queue_alloc(hv, 0,
eth_dev->device->numa_node);
- if (!hv->primary)
- return -ENOMEM;
+ if (!hv->primary) {
+ err = -ENOMEM;
+ goto failed;
+ }
err = hn_attach(hv, RTE_ETHER_MTU);
if (err)
@@ -1403,8 +1405,10 @@ eth_hn_dev_init(struct rte_eth_dev *eth_dev)
max_chan = rte_vmbus_max_channels(vmbus);
PMD_INIT_LOG(DEBUG, "VMBus max channels %d", max_chan);
- if (max_chan <= 0)
+ if (max_chan <= 0) {
+ err = max_chan ? max_chan : -ENODEV;
goto failed;
+ }
if (hn_rndis_query_rsscaps(hv, &rxr_cnt) != 0)
rxr_cnt = 1;
@@ -1425,6 +1429,8 @@ eth_hn_dev_init(struct rte_eth_dev *eth_dev)
hn_chim_uninit(eth_dev);
hn_detach(hv);
+ rte_free(hv->primary);
+ rte_vmbus_chan_close(hv->channels[0]);
return err;
}
--
2.43.0
next prev parent reply other threads:[~2026-03-03 20:54 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-03-03 20:54 [PATCH v4 0/6] net/netvsc: bug fixes and runtime queue reconfiguration Long Li
2026-03-03 20:54 ` [PATCH v4 1/6] net/netvsc: fix subchannel leak on device removal Long Li
2026-03-03 20:54 ` [PATCH v4 2/6] net/netvsc: fix double-free of primary Rx queue on uninit Long Li
2026-03-03 20:54 ` Long Li [this message]
2026-03-03 20:54 ` [PATCH v4 4/6] net/netvsc: fix event callback leak on rxfilter failure Long Li
2026-03-03 20:54 ` [PATCH v4 5/6] net/netvsc: fix resource leaks in MTU change path Long Li
2026-03-03 20:54 ` [PATCH v4 6/6] net/netvsc: support runtime queue count reconfiguration Long Li
2026-03-03 22:16 ` [PATCH v4 0/6] net/netvsc: bug fixes and runtime queue reconfiguration Stephen Hemminger
2026-03-03 22:30 ` [EXTERNAL] " Long Li
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=20260303205411.325585-4-longli@microsoft.com \
--to=longli@microsoft.com \
--cc=dev@dpdk.org \
--cc=stable@dpdk.org \
--cc=stephen@networkplumber.org \
--cc=weh@microsoft.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.