[<prev] [next>] [day] [month] [year] [list]
Message-ID: <20251206155146.95857-1-enjuk@amazon.com>
Date: Sun, 7 Dec 2025 00:51:27 +0900
From: Kohei Enju <enjuk@...zon.com>
To: <intel-wired-lan@...ts.osuosl.org>, <netdev@...r.kernel.org>
CC: Tony Nguyen <anthony.l.nguyen@...el.com>, Przemek Kitszel
<przemyslaw.kitszel@...el.com>, Andrew Lunn <andrew+netdev@...n.ch>, "David
S. Miller" <davem@...emloft.net>, Eric Dumazet <edumazet@...gle.com>, "Jakub
Kicinski" <kuba@...nel.org>, Paolo Abeni <pabeni@...hat.com>, "Jedrzej
Jagielski" <jedrzej.jagielski@...el.com>, Mateusz Polchlopek
<mateusz.polchlopek@...el.com>, Stefan Wegrzyn <stefan.wegrzyn@...el.com>,
<kohei.enju@...il.com>, Kohei Enju <enjuk@...zon.com>
Subject: [PATCH iwl-net v1] ixgbe: fix memory leaks in ixgbe_recovery_probe()
ixgbe_recovery_probe() does not free the following resources in its
error path, unlike ixgbe_probe():
- adapter->io_addr
- adapter->jump_tables[0]
- adapter->mac_table
- adapter->rss_key
- adapter->af_xdp_zc_qps
The leaked MMIO region can be observed in /proc/vmallocinfo, and the
remaining leaks are reported by kmemleak.
Free these allocations and unmap the MMIO region on failure to avoid the
leaks.
Fixes: 29cb3b8d95c7 ("ixgbe: add E610 implementation of FW recovery mode")
Signed-off-by: Kohei Enju <enjuk@...zon.com>
---
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
index 4af3b3e71ff1..1bfec3fffae0 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
@@ -11508,6 +11508,11 @@ static int ixgbe_recovery_probe(struct ixgbe_adapter *adapter)
mutex_destroy(&adapter->hw.aci.lock);
ixgbe_release_hw_control(adapter);
clean_up_probe:
+ iounmap(adapter->io_addr);
+ kfree(adapter->jump_tables[0]);
+ kfree(adapter->mac_table);
+ kfree(adapter->rss_key);
+ bitmap_free(adapter->af_xdp_zc_qps);
disable_dev = !test_and_set_bit(__IXGBE_DISABLED, &adapter->state);
free_netdev(netdev);
devlink_free(adapter->devlink);
--
2.52.0
Powered by blists - more mailing lists