> -----Original Message-----
> From: Intel-wired-lan <[email protected]> On Behalf
> Of Simon Horman
> Sent: Tuesday, May 26, 2026 10:01 PM
> To: Ashwin Gundarapu <[email protected]>
> Cc: Nguyen, Anthony L <[email protected]>; Kitszel,
> Przemyslaw <[email protected]>; andrewnetdev
> <[email protected]>; davem <[email protected]>; edumazet
> <[email protected]>; kuba <[email protected]>; pabeni
> <[email protected]>; intel-wired-lan <intel-wired-
> [email protected]>; netdev <[email protected]>; linux-kernel
> <[email protected]>
> Subject: Re: [Intel-wired-lan] [PATCH net-next] e1000e: fix memory
> leak of msix_entries on MSI-X failure
> 
> On Sat, May 23, 2026 at 11:52:14AM +0530, Ashwin Gundarapu wrote:
> > 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.
> >
> > 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);
> 
> Hi Ashwin,
> 
> e1000e_reset_interrupt_capability() already handles freeing (and
> NULLing) msix_entries, and it does so after calling
> pci_disable_msix().
> 
> This patch seems to have the effect of bypassing the call to
> pci_disable_msix().
> 
> Are you sure this is fixing a memory leak as described?
> 
> Flagged by https://sashiko.dev/ and https://netdev-
> ai.bots.linux.dev/sashiko/
> 

Good day, Ashwin

For me looks suspicious the call e1000e_reset_interrupt_capability() after you 
NULLified the adapter->msix_entries

Alex

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

Reply via email to