> -----Original Message-----
> From: Intel-wired-lan <[email protected]> On Behalf
> Of Kohei Enju
> Sent: Saturday, December 6, 2025 4:51 PM
> To: [email protected]; [email protected]
> Cc: Nguyen, Anthony L <[email protected]>; Kitszel,
> Przemyslaw <[email protected]>; Andrew Lunn
> <[email protected]>; David S. Miller <[email protected]>; Eric
> Dumazet <[email protected]>; Jakub Kicinski <[email protected]>; Paolo
> Abeni <[email protected]>; Jagielski, Jedrzej
> <[email protected]>; Mateusz Polchlopek
> <[email protected]>; Wegrzyn, Stefan
> <[email protected]>; [email protected]; Kohei Enju
> <[email protected]>
> Subject: [Intel-wired-lan] [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 <[email protected]>
> ---
>  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

Reviewed-by: Aleksandr Loktionov <[email protected]>

Reply via email to