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); } adapter->int_mode = E1000E_INT_MODE_MSI; fallthrough; -- 2.43.0
