> -----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 >
