> -----Original Message-----
> From: Intel-wired-lan <[email protected]> On Behalf
> Of Ashwin Gundarapu via Intel-wired-lan
> Sent: Saturday, May 23, 2026 8:22 AM
> To: Nguyen, Anthony L <[email protected]>; Kitszel,
> Przemyslaw <[email protected]>; andrewnetdev
> <[email protected]>; davem <[email protected]>; edumazet
> <[email protected]>; kuba <[email protected]>; pabeni
> <[email protected]>
> Cc: intel-wired-lan <[email protected]>; netdev
> <[email protected]>; linux-kernel <[email protected]>
> Subject: [Intel-wired-lan] [PATCH net-next] e1000e: fix memory leak of
> msix_entries on MSI-X failure
> 
> From: Ashwin Gundarapu <[email protected]>
> Date: Sat, 23 May 2026 11:49:40 +0530
> Subject: [PATCH] e1000e: fix memory leak of msix_entries on MSI-X
> failure
> 
> When MSI-X initialization fails, the driver falls through to try MSI
> or legacy interrupts. However, the msix_entries array allocated
> earlier is not freed, causing a memory leak. Free it and set to NULL
> before falling through to the MSI fallback path.
> 
> Found by code inspection.
> 
It sounds as serious bug, shouldn't it be for net ?
Then it needs proper Fixes tag and Cc: [email protected]
> Signed-off-by: Ashwin Gundarapu <[email protected]>
> ---
>  drivers/net/ethernet/intel/e1000e/netdev.c | 10 ++++++----
>  1 file changed, 6 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/net/ethernet/intel/e1000e/netdev.c
> b/drivers/net/ethernet/intel/e1000e/netdev.c
> index 7ce0cc8ab8f4..1526069d7fc1 100644
> --- a/drivers/net/ethernet/intel/e1000e/netdev.c
> +++ b/drivers/net/ethernet/intel/e1000e/netdev.c
> @@ -2065,10 +2065,12 @@ void e1000e_set_interrupt_capability(struct
> e1000_adapter *adapter)
>                                                           a->num_vectors);
>                               if (err > 0)
>                                       return;
> -                     }
> -                     /* MSI-X failed, so fall through and try MSI */
> -                     e_err("Failed to initialize MSI-X interrupts.
> Falling back to MSI interrupts.\n");
> -                     e1000e_reset_interrupt_capability(adapter);
> +                        }
> +                        /* MSI-X failed, so fall through and try MSI
> */
> +                        e_err("Failed to initialize MSI-X interrupts.
> Falling back to MSI interrupts.\n");
> +                        kfree(adapter->msix_entries);
> +                        adapter->msix_entries = NULL;
> +                        e1000e_reset_interrupt_capability(adapter);
Please use tabs instead of spaces.


>               }
>               adapter->int_mode = E1000E_INT_MODE_MSI;
>               fallthrough;
> --
> 2.43.0
> 

Reply via email to