All of lore.kernel.org
 help / color / mirror / Atom feed
* [Intel-wired-lan] [PATCH net-next] e1000e: fix memory leak of msix_entries on MSI-X failure
@ 2026-05-23  6:22 ` Ashwin Gundarapu
  0 siblings, 0 replies; 8+ messages in thread
From: Ashwin Gundarapu via Intel-wired-lan @ 2026-05-23  6:22 UTC (permalink / raw)
  To: anthonylnguyen, anthony.l.nguyen@intel.com, andrewnetdev, davem,
	edumazet, kuba, pabeni
  Cc: intel-wired-lan, netdev, linux-kernel

From: Ashwin Gundarapu <linuxuser509@zohomail.in>
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 <linuxuser509@zohomail.in>
---
 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);
 		}
 		adapter->int_mode = E1000E_INT_MODE_MSI;
 		fallthrough;
--
2.43.0



^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH net-next] e1000e: fix memory leak of msix_entries on MSI-X failure
@ 2026-05-23  6:22 ` Ashwin Gundarapu
  0 siblings, 0 replies; 8+ messages in thread
From: Ashwin Gundarapu @ 2026-05-23  6:22 UTC (permalink / raw)
  To: anthonylnguyen, anthony.l.nguyen@intel.com, andrewnetdev, davem,
	edumazet, kuba, pabeni
  Cc: intel-wired-lan, netdev, linux-kernel

From: Ashwin Gundarapu <linuxuser509@zohomail.in>
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 <linuxuser509@zohomail.in>
---
 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);
 		}
 		adapter->int_mode = E1000E_INT_MODE_MSI;
 		fallthrough;
--
2.43.0



^ permalink raw reply related	[flat|nested] 8+ messages in thread

* RE: [Intel-wired-lan] [PATCH net-next] e1000e: fix memory leak of msix_entries on MSI-X failure
  2026-05-23  6:22 ` Ashwin Gundarapu
@ 2026-05-25  8:41   ` Loktionov, Aleksandr
  -1 siblings, 0 replies; 8+ messages in thread
From: Loktionov, Aleksandr @ 2026-05-25  8:41 UTC (permalink / raw)
  To: Ashwin Gundarapu, Nguyen, Anthony L, Kitszel, Przemyslaw,
	andrewnetdev, davem, edumazet, kuba, pabeni
  Cc: intel-wired-lan, netdev, linux-kernel



> -----Original Message-----
> From: Intel-wired-lan <intel-wired-lan-bounces@osuosl.org> On Behalf
> Of Ashwin Gundarapu via Intel-wired-lan
> Sent: Saturday, May 23, 2026 8:22 AM
> To: Nguyen, Anthony L <anthony.l.nguyen@intel.com>; Kitszel,
> Przemyslaw <przemyslaw.kitszel@intel.com>; andrewnetdev
> <andrew+netdev@lunn.ch>; davem <davem@davemloft.net>; edumazet
> <edumazet@google.com>; kuba <kuba@kernel.org>; pabeni
> <pabeni@redhat.com>
> Cc: intel-wired-lan <intel-wired-lan@lists.osuosl.org>; netdev
> <netdev@vger.kernel.org>; linux-kernel <linux-kernel@vger.kernel.org>
> Subject: [Intel-wired-lan] [PATCH net-next] e1000e: fix memory leak of
> msix_entries on MSI-X failure
> 
> From: Ashwin Gundarapu <linuxuser509@zohomail.in>
> 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: stable@vger.kernel.org
> Signed-off-by: Ashwin Gundarapu <linuxuser509@zohomail.in>
> ---
>  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
> 


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [Intel-wired-lan] [PATCH net-next] e1000e: fix memory leak of msix_entries on MSI-X failure
@ 2026-05-25  8:41   ` Loktionov, Aleksandr
  0 siblings, 0 replies; 8+ messages in thread
From: Loktionov, Aleksandr @ 2026-05-25  8:41 UTC (permalink / raw)
  To: Ashwin Gundarapu, Nguyen, Anthony L, Kitszel, Przemyslaw,
	andrewnetdev, davem, edumazet, kuba, pabeni
  Cc: intel-wired-lan, netdev, linux-kernel



> -----Original Message-----
> From: Intel-wired-lan <intel-wired-lan-bounces@osuosl.org> On Behalf
> Of Ashwin Gundarapu via Intel-wired-lan
> Sent: Saturday, May 23, 2026 8:22 AM
> To: Nguyen, Anthony L <anthony.l.nguyen@intel.com>; Kitszel,
> Przemyslaw <przemyslaw.kitszel@intel.com>; andrewnetdev
> <andrew+netdev@lunn.ch>; davem <davem@davemloft.net>; edumazet
> <edumazet@google.com>; kuba <kuba@kernel.org>; pabeni
> <pabeni@redhat.com>
> Cc: intel-wired-lan <intel-wired-lan@lists.osuosl.org>; netdev
> <netdev@vger.kernel.org>; linux-kernel <linux-kernel@vger.kernel.org>
> Subject: [Intel-wired-lan] [PATCH net-next] e1000e: fix memory leak of
> msix_entries on MSI-X failure
> 
> From: Ashwin Gundarapu <linuxuser509@zohomail.in>
> 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: stable@vger.kernel.org
> Signed-off-by: Ashwin Gundarapu <linuxuser509@zohomail.in>
> ---
>  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
> 


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH net-next] e1000e: fix memory leak of msix_entries on MSI-X failure
  2026-05-23  6:22 ` Ashwin Gundarapu
@ 2026-05-26 20:01   ` Simon Horman
  -1 siblings, 0 replies; 8+ messages in thread
From: Simon Horman @ 2026-05-26 20:01 UTC (permalink / raw)
  To: Ashwin Gundarapu
  Cc: anthonylnguyen, anthony.l.nguyen@intel.com, andrewnetdev, davem,
	edumazet, kuba, pabeni, intel-wired-lan, netdev, linux-kernel

On Sat, May 23, 2026 at 11:52:14AM +0530, Ashwin Gundarapu wrote:
> From: Ashwin Gundarapu <linuxuser509@zohomail.in>
> 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 <linuxuser509@zohomail.in>
> ---
>  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/

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

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [Intel-wired-lan] [PATCH net-next] e1000e: fix memory leak of msix_entries on MSI-X failure
@ 2026-05-26 20:01   ` Simon Horman
  0 siblings, 0 replies; 8+ messages in thread
From: Simon Horman @ 2026-05-26 20:01 UTC (permalink / raw)
  To: Ashwin Gundarapu
  Cc: anthonylnguyen, anthony.l.nguyen@intel.com, andrewnetdev, davem,
	edumazet, kuba, pabeni, intel-wired-lan, netdev, linux-kernel

On Sat, May 23, 2026 at 11:52:14AM +0530, Ashwin Gundarapu wrote:
> From: Ashwin Gundarapu <linuxuser509@zohomail.in>
> 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 <linuxuser509@zohomail.in>
> ---
>  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/

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

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [Intel-wired-lan] [PATCH net-next] e1000e: fix memory leak of msix_entries on MSI-X failure
  2026-05-26 20:01   ` [Intel-wired-lan] " Simon Horman
@ 2026-05-27  7:41     ` Loktionov, Aleksandr
  -1 siblings, 0 replies; 8+ messages in thread
From: Loktionov, Aleksandr @ 2026-05-27  7:41 UTC (permalink / raw)
  To: Simon Horman, Ashwin Gundarapu
  Cc: Nguyen, Anthony L, Kitszel, Przemyslaw, andrewnetdev, davem,
	edumazet, kuba, pabeni, intel-wired-lan, netdev, linux-kernel



> -----Original Message-----
> From: Intel-wired-lan <intel-wired-lan-bounces@osuosl.org> On Behalf
> Of Simon Horman
> Sent: Tuesday, May 26, 2026 10:01 PM
> To: Ashwin Gundarapu <linuxuser509@zohomail.in>
> Cc: Nguyen, Anthony L <anthony.l.nguyen@intel.com>; Kitszel,
> Przemyslaw <przemyslaw.kitszel@intel.com>; andrewnetdev
> <andrew+netdev@lunn.ch>; davem <davem@davemloft.net>; edumazet
> <edumazet@google.com>; kuba <kuba@kernel.org>; pabeni
> <pabeni@redhat.com>; intel-wired-lan <intel-wired-
> lan@lists.osuosl.org>; netdev <netdev@vger.kernel.org>; linux-kernel
> <linux-kernel@vger.kernel.org>
> 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 <linuxuser509@zohomail.in>
> > 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 <linuxuser509@zohomail.in>
> > ---
> >  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
> >
> >

^ permalink raw reply	[flat|nested] 8+ messages in thread

* RE: [Intel-wired-lan] [PATCH net-next] e1000e: fix memory leak of msix_entries on MSI-X failure
@ 2026-05-27  7:41     ` Loktionov, Aleksandr
  0 siblings, 0 replies; 8+ messages in thread
From: Loktionov, Aleksandr @ 2026-05-27  7:41 UTC (permalink / raw)
  To: Simon Horman, Ashwin Gundarapu
  Cc: Nguyen, Anthony L, Kitszel, Przemyslaw, andrewnetdev, davem,
	edumazet, kuba, pabeni, intel-wired-lan, netdev, linux-kernel



> -----Original Message-----
> From: Intel-wired-lan <intel-wired-lan-bounces@osuosl.org> On Behalf
> Of Simon Horman
> Sent: Tuesday, May 26, 2026 10:01 PM
> To: Ashwin Gundarapu <linuxuser509@zohomail.in>
> Cc: Nguyen, Anthony L <anthony.l.nguyen@intel.com>; Kitszel,
> Przemyslaw <przemyslaw.kitszel@intel.com>; andrewnetdev
> <andrew+netdev@lunn.ch>; davem <davem@davemloft.net>; edumazet
> <edumazet@google.com>; kuba <kuba@kernel.org>; pabeni
> <pabeni@redhat.com>; intel-wired-lan <intel-wired-
> lan@lists.osuosl.org>; netdev <netdev@vger.kernel.org>; linux-kernel
> <linux-kernel@vger.kernel.org>
> 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 <linuxuser509@zohomail.in>
> > 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 <linuxuser509@zohomail.in>
> > ---
> >  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
> >
> >

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2026-05-27  7:41 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-05-23  6:22 [Intel-wired-lan] [PATCH net-next] e1000e: fix memory leak of msix_entries on MSI-X failure Ashwin Gundarapu via Intel-wired-lan
2026-05-23  6:22 ` Ashwin Gundarapu
2026-05-25  8:41 ` [Intel-wired-lan] " Loktionov, Aleksandr
2026-05-25  8:41   ` Loktionov, Aleksandr
2026-05-26 20:01 ` Simon Horman
2026-05-26 20:01   ` [Intel-wired-lan] " Simon Horman
2026-05-27  7:41   ` Loktionov, Aleksandr
2026-05-27  7:41     ` Loktionov, Aleksandr

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.