All of lore.kernel.org
 help / color / mirror / Atom feed
* [Intel-wired-lan] [PATCH iwl-net v2 0/2] ixgbe: fix issues around ixgbe_recovery_probe()
@ 2025-12-11  9:15 ` Kohei Enju
  0 siblings, 0 replies; 14+ messages in thread
From: Kohei Enju @ 2025-12-11  9:15 UTC (permalink / raw)
  To: intel-wired-lan, netdev
  Cc: Tony Nguyen, Przemek Kitszel, Andrew Lunn, David S. Miller,
	Eric Dumazet, Jakub Kicinski, Paolo Abeni, Jedrzej Jagielski,
	Stefan Wegrzyn, Simon Horman, Jacob Keller, kohei, Kohei Enju

ixgbe_recovery_probe() and codes around this function have two bugs:
1. resource freeing up is not complete, resulting in memory leaks
2. mutex lock (hw->aci.lock) is initialized twice

Fix these issues.

Changes:
  v2:
    - let ixgbe_probe() to clean up, instead of ixgbe_recovery_probe()
    - don't initialize aci lock twice
  v1: https://lore.kernel.org/intel-wired-lan/20251206155146.95857-1-enjuk@amazon.com/

Kohei Enju (2):
  ixgbe: fix memory leaks in the ixgbe_recovery_probe() path
  ixgbe: don't initialize aci lock in ixgbe_recovery_probe()

 drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 26 +++++++------------
 1 file changed, 10 insertions(+), 16 deletions(-)

-- 
2.52.0


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

* [PATCH iwl-net v2 0/2] ixgbe: fix issues around ixgbe_recovery_probe()
@ 2025-12-11  9:15 ` Kohei Enju
  0 siblings, 0 replies; 14+ messages in thread
From: Kohei Enju @ 2025-12-11  9:15 UTC (permalink / raw)
  To: intel-wired-lan, netdev
  Cc: Tony Nguyen, Przemek Kitszel, Andrew Lunn, David S. Miller,
	Eric Dumazet, Jakub Kicinski, Paolo Abeni, Jedrzej Jagielski,
	Stefan Wegrzyn, Simon Horman, Jacob Keller, kohei, Kohei Enju

ixgbe_recovery_probe() and codes around this function have two bugs:
1. resource freeing up is not complete, resulting in memory leaks
2. mutex lock (hw->aci.lock) is initialized twice

Fix these issues.

Changes:
  v2:
    - let ixgbe_probe() to clean up, instead of ixgbe_recovery_probe()
    - don't initialize aci lock twice
  v1: https://lore.kernel.org/intel-wired-lan/20251206155146.95857-1-enjuk@amazon.com/

Kohei Enju (2):
  ixgbe: fix memory leaks in the ixgbe_recovery_probe() path
  ixgbe: don't initialize aci lock in ixgbe_recovery_probe()

 drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 26 +++++++------------
 1 file changed, 10 insertions(+), 16 deletions(-)

-- 
2.52.0


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

* [Intel-wired-lan] [PATCH iwl-net v2 1/2] ixgbe: fix memory leaks in the ixgbe_recovery_probe() path
  2025-12-11  9:15 ` Kohei Enju
@ 2025-12-11  9:15   ` Kohei Enju
  -1 siblings, 0 replies; 14+ messages in thread
From: Kohei Enju @ 2025-12-11  9:15 UTC (permalink / raw)
  To: intel-wired-lan, netdev
  Cc: Tony Nguyen, Przemek Kitszel, Andrew Lunn, David S. Miller,
	Eric Dumazet, Jakub Kicinski, Paolo Abeni, Jedrzej Jagielski,
	Stefan Wegrzyn, Simon Horman, Jacob Keller, kohei, Kohei Enju

When ixgbe_recovery_probe() is invoked and this function fails,
allocated resources in advance are not completely freed, because
ixgbe_probe() returns ixgbe_recovery_probe() directly and
ixgbe_recovery_probe() only frees partial resources, resulting in memory
leaks including:
- adapter->io_addr
- adapter->jump_tables[0]
- adapter->mac_table
- adapter->rss_key
- adapter->af_xdp_zc_qps

The leaked MMIO region can be observed in /proc/vmallocinfo, and the
remaining leaks are reported by kmemleak.

Don't return ixgbe_recovery_probe() directly, and instead let
ixgbe_probe() to clean up resources on failures.

Fixes: 29cb3b8d95c7 ("ixgbe: add E610 implementation of FW recovery mode")
Signed-off-by: Kohei Enju <enjuk@amazon.com>
---
 drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 20 ++++++++-----------
 1 file changed, 8 insertions(+), 12 deletions(-)

diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
index 4af3b3e71ff1..85023bb4e5a5 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
@@ -11468,14 +11468,12 @@ static void ixgbe_set_fw_version(struct ixgbe_adapter *adapter)
  */
 static int ixgbe_recovery_probe(struct ixgbe_adapter *adapter)
 {
-	struct net_device *netdev = adapter->netdev;
 	struct pci_dev *pdev = adapter->pdev;
 	struct ixgbe_hw *hw = &adapter->hw;
-	bool disable_dev;
 	int err = -EIO;
 
 	if (hw->mac.type != ixgbe_mac_e610)
-		goto clean_up_probe;
+		return err;
 
 	ixgbe_get_hw_control(adapter);
 	mutex_init(&hw->aci.lock);
@@ -11507,13 +11505,6 @@ static int ixgbe_recovery_probe(struct ixgbe_adapter *adapter)
 shutdown_aci:
 	mutex_destroy(&adapter->hw.aci.lock);
 	ixgbe_release_hw_control(adapter);
-clean_up_probe:
-	disable_dev = !test_and_set_bit(__IXGBE_DISABLED, &adapter->state);
-	free_netdev(netdev);
-	devlink_free(adapter->devlink);
-	pci_release_mem_regions(pdev);
-	if (disable_dev)
-		pci_disable_device(pdev);
 	return err;
 }
 
@@ -11655,8 +11646,13 @@ static int ixgbe_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
 	if (err)
 		goto err_sw_init;
 
-	if (ixgbe_check_fw_error(adapter))
-		return ixgbe_recovery_probe(adapter);
+	if (ixgbe_check_fw_error(adapter)) {
+		err = ixgbe_recovery_probe(adapter);
+		if (err)
+			goto err_sw_init;
+
+		return 0;
+	}
 
 	if (adapter->hw.mac.type == ixgbe_mac_e610) {
 		err = ixgbe_get_caps(&adapter->hw);
-- 
2.52.0


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

* [PATCH iwl-net v2 1/2] ixgbe: fix memory leaks in the ixgbe_recovery_probe() path
@ 2025-12-11  9:15   ` Kohei Enju
  0 siblings, 0 replies; 14+ messages in thread
From: Kohei Enju @ 2025-12-11  9:15 UTC (permalink / raw)
  To: intel-wired-lan, netdev
  Cc: Tony Nguyen, Przemek Kitszel, Andrew Lunn, David S. Miller,
	Eric Dumazet, Jakub Kicinski, Paolo Abeni, Jedrzej Jagielski,
	Stefan Wegrzyn, Simon Horman, Jacob Keller, kohei, Kohei Enju

When ixgbe_recovery_probe() is invoked and this function fails,
allocated resources in advance are not completely freed, because
ixgbe_probe() returns ixgbe_recovery_probe() directly and
ixgbe_recovery_probe() only frees partial resources, resulting in memory
leaks including:
- adapter->io_addr
- adapter->jump_tables[0]
- adapter->mac_table
- adapter->rss_key
- adapter->af_xdp_zc_qps

The leaked MMIO region can be observed in /proc/vmallocinfo, and the
remaining leaks are reported by kmemleak.

Don't return ixgbe_recovery_probe() directly, and instead let
ixgbe_probe() to clean up resources on failures.

Fixes: 29cb3b8d95c7 ("ixgbe: add E610 implementation of FW recovery mode")
Signed-off-by: Kohei Enju <enjuk@amazon.com>
---
 drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 20 ++++++++-----------
 1 file changed, 8 insertions(+), 12 deletions(-)

diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
index 4af3b3e71ff1..85023bb4e5a5 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
@@ -11468,14 +11468,12 @@ static void ixgbe_set_fw_version(struct ixgbe_adapter *adapter)
  */
 static int ixgbe_recovery_probe(struct ixgbe_adapter *adapter)
 {
-	struct net_device *netdev = adapter->netdev;
 	struct pci_dev *pdev = adapter->pdev;
 	struct ixgbe_hw *hw = &adapter->hw;
-	bool disable_dev;
 	int err = -EIO;
 
 	if (hw->mac.type != ixgbe_mac_e610)
-		goto clean_up_probe;
+		return err;
 
 	ixgbe_get_hw_control(adapter);
 	mutex_init(&hw->aci.lock);
@@ -11507,13 +11505,6 @@ static int ixgbe_recovery_probe(struct ixgbe_adapter *adapter)
 shutdown_aci:
 	mutex_destroy(&adapter->hw.aci.lock);
 	ixgbe_release_hw_control(adapter);
-clean_up_probe:
-	disable_dev = !test_and_set_bit(__IXGBE_DISABLED, &adapter->state);
-	free_netdev(netdev);
-	devlink_free(adapter->devlink);
-	pci_release_mem_regions(pdev);
-	if (disable_dev)
-		pci_disable_device(pdev);
 	return err;
 }
 
@@ -11655,8 +11646,13 @@ static int ixgbe_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
 	if (err)
 		goto err_sw_init;
 
-	if (ixgbe_check_fw_error(adapter))
-		return ixgbe_recovery_probe(adapter);
+	if (ixgbe_check_fw_error(adapter)) {
+		err = ixgbe_recovery_probe(adapter);
+		if (err)
+			goto err_sw_init;
+
+		return 0;
+	}
 
 	if (adapter->hw.mac.type == ixgbe_mac_e610) {
 		err = ixgbe_get_caps(&adapter->hw);
-- 
2.52.0


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

* [Intel-wired-lan] [PATCH iwl-net v2 2/2] ixgbe: don't initialize aci lock in ixgbe_recovery_probe()
  2025-12-11  9:15 ` Kohei Enju
@ 2025-12-11  9:15   ` Kohei Enju
  -1 siblings, 0 replies; 14+ messages in thread
From: Kohei Enju @ 2025-12-11  9:15 UTC (permalink / raw)
  To: intel-wired-lan, netdev
  Cc: Tony Nguyen, Przemek Kitszel, Andrew Lunn, David S. Miller,
	Eric Dumazet, Jakub Kicinski, Paolo Abeni, Jedrzej Jagielski,
	Stefan Wegrzyn, Simon Horman, Jacob Keller, kohei, Kohei Enju

hw->aci.lock is already initialized in ixgbe_sw_init(), so
ixgbe_recovery_probe() doesn't need to initialize the lock. This
function is also not responsible for destroying the lock on failures.

Additionally, change the name of label in accordance with this change.

Fixes: 29cb3b8d95c7 ("ixgbe: add E610 implementation of FW recovery mode")
Reported-by: Simon Horman <horms@kernel.org>
Closes: https://lore.kernel.org/intel-wired-lan/aTcFhoH-z2btEKT-@horms.kernel.org/
Signed-off-by: Kohei Enju <enjuk@amazon.com>
---
 drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
index 85023bb4e5a5..b5de8a218424 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
@@ -11476,10 +11476,9 @@ static int ixgbe_recovery_probe(struct ixgbe_adapter *adapter)
 		return err;
 
 	ixgbe_get_hw_control(adapter);
-	mutex_init(&hw->aci.lock);
 	err = ixgbe_get_flash_data(&adapter->hw);
 	if (err)
-		goto shutdown_aci;
+		goto err_release_hw_control;
 
 	timer_setup(&adapter->service_timer, ixgbe_service_timer, 0);
 	INIT_WORK(&adapter->service_task, ixgbe_recovery_service_task);
@@ -11502,8 +11501,7 @@ static int ixgbe_recovery_probe(struct ixgbe_adapter *adapter)
 	devl_unlock(adapter->devlink);
 
 	return 0;
-shutdown_aci:
-	mutex_destroy(&adapter->hw.aci.lock);
+err_release_hw_control:
 	ixgbe_release_hw_control(adapter);
 	return err;
 }
-- 
2.52.0


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

* [PATCH iwl-net v2 2/2] ixgbe: don't initialize aci lock in ixgbe_recovery_probe()
@ 2025-12-11  9:15   ` Kohei Enju
  0 siblings, 0 replies; 14+ messages in thread
From: Kohei Enju @ 2025-12-11  9:15 UTC (permalink / raw)
  To: intel-wired-lan, netdev
  Cc: Tony Nguyen, Przemek Kitszel, Andrew Lunn, David S. Miller,
	Eric Dumazet, Jakub Kicinski, Paolo Abeni, Jedrzej Jagielski,
	Stefan Wegrzyn, Simon Horman, Jacob Keller, kohei, Kohei Enju

hw->aci.lock is already initialized in ixgbe_sw_init(), so
ixgbe_recovery_probe() doesn't need to initialize the lock. This
function is also not responsible for destroying the lock on failures.

Additionally, change the name of label in accordance with this change.

Fixes: 29cb3b8d95c7 ("ixgbe: add E610 implementation of FW recovery mode")
Reported-by: Simon Horman <horms@kernel.org>
Closes: https://lore.kernel.org/intel-wired-lan/aTcFhoH-z2btEKT-@horms.kernel.org/
Signed-off-by: Kohei Enju <enjuk@amazon.com>
---
 drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
index 85023bb4e5a5..b5de8a218424 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
@@ -11476,10 +11476,9 @@ static int ixgbe_recovery_probe(struct ixgbe_adapter *adapter)
 		return err;
 
 	ixgbe_get_hw_control(adapter);
-	mutex_init(&hw->aci.lock);
 	err = ixgbe_get_flash_data(&adapter->hw);
 	if (err)
-		goto shutdown_aci;
+		goto err_release_hw_control;
 
 	timer_setup(&adapter->service_timer, ixgbe_service_timer, 0);
 	INIT_WORK(&adapter->service_task, ixgbe_recovery_service_task);
@@ -11502,8 +11501,7 @@ static int ixgbe_recovery_probe(struct ixgbe_adapter *adapter)
 	devl_unlock(adapter->devlink);
 
 	return 0;
-shutdown_aci:
-	mutex_destroy(&adapter->hw.aci.lock);
+err_release_hw_control:
 	ixgbe_release_hw_control(adapter);
 	return err;
 }
-- 
2.52.0


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

* Re: [Intel-wired-lan] [PATCH iwl-net v2 2/2] ixgbe: don't initialize aci lock in ixgbe_recovery_probe()
  2025-12-11  9:15   ` Kohei Enju
@ 2025-12-11 10:12     ` Loktionov, Aleksandr
  -1 siblings, 0 replies; 14+ messages in thread
From: Loktionov, Aleksandr @ 2025-12-11 10:12 UTC (permalink / raw)
  To: Kohei Enju, intel-wired-lan@lists.osuosl.org,
	netdev@vger.kernel.org
  Cc: Nguyen, Anthony L, Kitszel, Przemyslaw, Andrew Lunn,
	David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
	Jagielski, Jedrzej, Wegrzyn, Stefan, Simon Horman,
	Keller, Jacob E, kohei@enjuk.org



> -----Original Message-----
> From: Intel-wired-lan <intel-wired-lan-bounces@osuosl.org> On Behalf
> Of Kohei Enju
> Sent: Thursday, December 11, 2025 10:16 AM
> To: intel-wired-lan@lists.osuosl.org; netdev@vger.kernel.org
> Cc: Nguyen, Anthony L <anthony.l.nguyen@intel.com>; Kitszel,
> Przemyslaw <przemyslaw.kitszel@intel.com>; Andrew Lunn
> <andrew+netdev@lunn.ch>; David S. Miller <davem@davemloft.net>; Eric
> Dumazet <edumazet@google.com>; Jakub Kicinski <kuba@kernel.org>; Paolo
> Abeni <pabeni@redhat.com>; Jagielski, Jedrzej
> <jedrzej.jagielski@intel.com>; Wegrzyn, Stefan
> <stefan.wegrzyn@intel.com>; Simon Horman <horms@kernel.org>; Keller,
> Jacob E <jacob.e.keller@intel.com>; kohei@enjuk.org; Kohei Enju
> <enjuk@amazon.com>
> Subject: [Intel-wired-lan] [PATCH iwl-net v2 2/2] ixgbe: don't
> initialize aci lock in ixgbe_recovery_probe()
> 
> hw->aci.lock is already initialized in ixgbe_sw_init(), so
> ixgbe_recovery_probe() doesn't need to initialize the lock. This
You claim that ixgbe_sw_init() initializes hw->aci.lock but don't provide evidence(s).
Can you?


> function is also not responsible for destroying the lock on failures.
> 
> Additionally, change the name of label in accordance with this change.
> 
> Fixes: 29cb3b8d95c7 ("ixgbe: add E610 implementation of FW recovery
> mode")
> Reported-by: Simon Horman <horms@kernel.org>
> Closes: https://lore.kernel.org/intel-wired-lan/aTcFhoH-z2btEKT-
> @horms.kernel.org/
> Signed-off-by: Kohei Enju <enjuk@amazon.com>
> ---
>  drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 6 ++----
>  1 file changed, 2 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
> b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
> index 85023bb4e5a5..b5de8a218424 100644
> --- a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
> +++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
> @@ -11476,10 +11476,9 @@ static int ixgbe_recovery_probe(struct
> ixgbe_adapter *adapter)
>  		return err;
> 
>  	ixgbe_get_hw_control(adapter);
> -	mutex_init(&hw->aci.lock);
>  	err = ixgbe_get_flash_data(&adapter->hw);
>  	if (err)
> -		goto shutdown_aci;
> +		goto err_release_hw_control;
> 
>  	timer_setup(&adapter->service_timer, ixgbe_service_timer, 0);
>  	INIT_WORK(&adapter->service_task, ixgbe_recovery_service_task);
> @@ -11502,8 +11501,7 @@ static int ixgbe_recovery_probe(struct
> ixgbe_adapter *adapter)
>  	devl_unlock(adapter->devlink);
> 
>  	return 0;
> -shutdown_aci:
> -	mutex_destroy(&adapter->hw.aci.lock);
> +err_release_hw_control:
>  	ixgbe_release_hw_control(adapter);
>  	return err;
>  }
> --
> 2.52.0


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

* RE: [Intel-wired-lan] [PATCH iwl-net v2 2/2] ixgbe: don't initialize aci lock in ixgbe_recovery_probe()
@ 2025-12-11 10:12     ` Loktionov, Aleksandr
  0 siblings, 0 replies; 14+ messages in thread
From: Loktionov, Aleksandr @ 2025-12-11 10:12 UTC (permalink / raw)
  To: Kohei Enju, intel-wired-lan@lists.osuosl.org,
	netdev@vger.kernel.org
  Cc: Nguyen, Anthony L, Kitszel, Przemyslaw, Andrew Lunn,
	David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
	Jagielski, Jedrzej, Wegrzyn, Stefan, Simon Horman,
	Keller, Jacob E, kohei@enjuk.org



> -----Original Message-----
> From: Intel-wired-lan <intel-wired-lan-bounces@osuosl.org> On Behalf
> Of Kohei Enju
> Sent: Thursday, December 11, 2025 10:16 AM
> To: intel-wired-lan@lists.osuosl.org; netdev@vger.kernel.org
> Cc: Nguyen, Anthony L <anthony.l.nguyen@intel.com>; Kitszel,
> Przemyslaw <przemyslaw.kitszel@intel.com>; Andrew Lunn
> <andrew+netdev@lunn.ch>; David S. Miller <davem@davemloft.net>; Eric
> Dumazet <edumazet@google.com>; Jakub Kicinski <kuba@kernel.org>; Paolo
> Abeni <pabeni@redhat.com>; Jagielski, Jedrzej
> <jedrzej.jagielski@intel.com>; Wegrzyn, Stefan
> <stefan.wegrzyn@intel.com>; Simon Horman <horms@kernel.org>; Keller,
> Jacob E <jacob.e.keller@intel.com>; kohei@enjuk.org; Kohei Enju
> <enjuk@amazon.com>
> Subject: [Intel-wired-lan] [PATCH iwl-net v2 2/2] ixgbe: don't
> initialize aci lock in ixgbe_recovery_probe()
> 
> hw->aci.lock is already initialized in ixgbe_sw_init(), so
> ixgbe_recovery_probe() doesn't need to initialize the lock. This
You claim that ixgbe_sw_init() initializes hw->aci.lock but don't provide evidence(s).
Can you?


> function is also not responsible for destroying the lock on failures.
> 
> Additionally, change the name of label in accordance with this change.
> 
> Fixes: 29cb3b8d95c7 ("ixgbe: add E610 implementation of FW recovery
> mode")
> Reported-by: Simon Horman <horms@kernel.org>
> Closes: https://lore.kernel.org/intel-wired-lan/aTcFhoH-z2btEKT-
> @horms.kernel.org/
> Signed-off-by: Kohei Enju <enjuk@amazon.com>
> ---
>  drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 6 ++----
>  1 file changed, 2 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
> b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
> index 85023bb4e5a5..b5de8a218424 100644
> --- a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
> +++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
> @@ -11476,10 +11476,9 @@ static int ixgbe_recovery_probe(struct
> ixgbe_adapter *adapter)
>  		return err;
> 
>  	ixgbe_get_hw_control(adapter);
> -	mutex_init(&hw->aci.lock);
>  	err = ixgbe_get_flash_data(&adapter->hw);
>  	if (err)
> -		goto shutdown_aci;
> +		goto err_release_hw_control;
> 
>  	timer_setup(&adapter->service_timer, ixgbe_service_timer, 0);
>  	INIT_WORK(&adapter->service_task, ixgbe_recovery_service_task);
> @@ -11502,8 +11501,7 @@ static int ixgbe_recovery_probe(struct
> ixgbe_adapter *adapter)
>  	devl_unlock(adapter->devlink);
> 
>  	return 0;
> -shutdown_aci:
> -	mutex_destroy(&adapter->hw.aci.lock);
> +err_release_hw_control:
>  	ixgbe_release_hw_control(adapter);
>  	return err;
>  }
> --
> 2.52.0


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

* Re: [Intel-wired-lan] [PATCH iwl-net v2 1/2] ixgbe: fix memory leaks in the ixgbe_recovery_probe() path
  2025-12-11  9:15   ` Kohei Enju
@ 2025-12-11 10:13     ` Loktionov, Aleksandr
  -1 siblings, 0 replies; 14+ messages in thread
From: Loktionov, Aleksandr @ 2025-12-11 10:13 UTC (permalink / raw)
  To: Kohei Enju, intel-wired-lan@lists.osuosl.org,
	netdev@vger.kernel.org
  Cc: Nguyen, Anthony L, Kitszel, Przemyslaw, Andrew Lunn,
	David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
	Jagielski, Jedrzej, Wegrzyn, Stefan, Simon Horman,
	Keller, Jacob E, kohei@enjuk.org



> -----Original Message-----
> From: Intel-wired-lan <intel-wired-lan-bounces@osuosl.org> On Behalf
> Of Kohei Enju
> Sent: Thursday, December 11, 2025 10:16 AM
> To: intel-wired-lan@lists.osuosl.org; netdev@vger.kernel.org
> Cc: Nguyen, Anthony L <anthony.l.nguyen@intel.com>; Kitszel,
> Przemyslaw <przemyslaw.kitszel@intel.com>; Andrew Lunn
> <andrew+netdev@lunn.ch>; David S. Miller <davem@davemloft.net>; Eric
> Dumazet <edumazet@google.com>; Jakub Kicinski <kuba@kernel.org>; Paolo
> Abeni <pabeni@redhat.com>; Jagielski, Jedrzej
> <jedrzej.jagielski@intel.com>; Wegrzyn, Stefan
> <stefan.wegrzyn@intel.com>; Simon Horman <horms@kernel.org>; Keller,
> Jacob E <jacob.e.keller@intel.com>; kohei@enjuk.org; Kohei Enju
> <enjuk@amazon.com>
> Subject: [Intel-wired-lan] [PATCH iwl-net v2 1/2] ixgbe: fix memory
> leaks in the ixgbe_recovery_probe() path
> 
> When ixgbe_recovery_probe() is invoked and this function fails,
> allocated resources in advance are not completely freed, because
> ixgbe_probe() returns ixgbe_recovery_probe() directly and
> ixgbe_recovery_probe() only frees partial resources, resulting in
> memory leaks including:
> - adapter->io_addr
> - adapter->jump_tables[0]
> - adapter->mac_table
> - adapter->rss_key
> - adapter->af_xdp_zc_qps
> 
> The leaked MMIO region can be observed in /proc/vmallocinfo, and the
> remaining leaks are reported by kmemleak.
> 
> Don't return ixgbe_recovery_probe() directly, and instead let
> ixgbe_probe() to clean up resources on failures.
> 
> Fixes: 29cb3b8d95c7 ("ixgbe: add E610 implementation of FW recovery
> mode")
> Signed-off-by: Kohei Enju <enjuk@amazon.com>
> ---
>  drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 20 ++++++++----------
> -
>  1 file changed, 8 insertions(+), 12 deletions(-)
> 
> diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
> b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
> index 4af3b3e71ff1..85023bb4e5a5 100644
> --- a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
> +++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
> @@ -11468,14 +11468,12 @@ static void ixgbe_set_fw_version(struct
> ixgbe_adapter *adapter)
>   */
>  static int ixgbe_recovery_probe(struct ixgbe_adapter *adapter)  {
> -	struct net_device *netdev = adapter->netdev;
>  	struct pci_dev *pdev = adapter->pdev;
>  	struct ixgbe_hw *hw = &adapter->hw;
> -	bool disable_dev;
>  	int err = -EIO;
> 
>  	if (hw->mac.type != ixgbe_mac_e610)
> -		goto clean_up_probe;
> +		return err;
You've removed the clean_up_probe: label and its cleanup code (free_netdev, devlink_free, pci_release_mem_regions, pci_disable_device) without providing a proof that ixgbe_probe()'s error path correctly handles all these resources.
I'm afraid this patch may trade one leak for another, or cause double-free issues.


> 
>  	ixgbe_get_hw_control(adapter);
>  	mutex_init(&hw->aci.lock);
> @@ -11507,13 +11505,6 @@ static int ixgbe_recovery_probe(struct
> ixgbe_adapter *adapter)
>  shutdown_aci:
>  	mutex_destroy(&adapter->hw.aci.lock);
>  	ixgbe_release_hw_control(adapter);
> -clean_up_probe:
> -	disable_dev = !test_and_set_bit(__IXGBE_DISABLED, &adapter-
> >state);
> -	free_netdev(netdev);
> -	devlink_free(adapter->devlink);
> -	pci_release_mem_regions(pdev);
> -	if (disable_dev)
> -		pci_disable_device(pdev);
>  	return err;
>  }
> 
> @@ -11655,8 +11646,13 @@ static int ixgbe_probe(struct pci_dev *pdev,
> const struct pci_device_id *ent)
>  	if (err)
>  		goto err_sw_init;
> 
> -	if (ixgbe_check_fw_error(adapter))
> -		return ixgbe_recovery_probe(adapter);
> +	if (ixgbe_check_fw_error(adapter)) {
> +		err = ixgbe_recovery_probe(adapter);
> +		if (err)
> +			goto err_sw_init;
The early return 0; on successful ixgbe_recovery_probe() bypasses the remainder of ixgbe_probe().
The commit message doesn't explain what subsequent initialization steps (if any) are intentionally skipped in recovery mode, or whether this is correct behavior.

> +
> +		return 0;
> +	}
> 
>  	if (adapter->hw.mac.type == ixgbe_mac_e610) {
>  		err = ixgbe_get_caps(&adapter->hw);
> --
> 2.52.0


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

* RE: [Intel-wired-lan] [PATCH iwl-net v2 1/2] ixgbe: fix memory leaks in the ixgbe_recovery_probe() path
@ 2025-12-11 10:13     ` Loktionov, Aleksandr
  0 siblings, 0 replies; 14+ messages in thread
From: Loktionov, Aleksandr @ 2025-12-11 10:13 UTC (permalink / raw)
  To: Kohei Enju, intel-wired-lan@lists.osuosl.org,
	netdev@vger.kernel.org
  Cc: Nguyen, Anthony L, Kitszel, Przemyslaw, Andrew Lunn,
	David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
	Jagielski, Jedrzej, Wegrzyn, Stefan, Simon Horman,
	Keller, Jacob E, kohei@enjuk.org



> -----Original Message-----
> From: Intel-wired-lan <intel-wired-lan-bounces@osuosl.org> On Behalf
> Of Kohei Enju
> Sent: Thursday, December 11, 2025 10:16 AM
> To: intel-wired-lan@lists.osuosl.org; netdev@vger.kernel.org
> Cc: Nguyen, Anthony L <anthony.l.nguyen@intel.com>; Kitszel,
> Przemyslaw <przemyslaw.kitszel@intel.com>; Andrew Lunn
> <andrew+netdev@lunn.ch>; David S. Miller <davem@davemloft.net>; Eric
> Dumazet <edumazet@google.com>; Jakub Kicinski <kuba@kernel.org>; Paolo
> Abeni <pabeni@redhat.com>; Jagielski, Jedrzej
> <jedrzej.jagielski@intel.com>; Wegrzyn, Stefan
> <stefan.wegrzyn@intel.com>; Simon Horman <horms@kernel.org>; Keller,
> Jacob E <jacob.e.keller@intel.com>; kohei@enjuk.org; Kohei Enju
> <enjuk@amazon.com>
> Subject: [Intel-wired-lan] [PATCH iwl-net v2 1/2] ixgbe: fix memory
> leaks in the ixgbe_recovery_probe() path
> 
> When ixgbe_recovery_probe() is invoked and this function fails,
> allocated resources in advance are not completely freed, because
> ixgbe_probe() returns ixgbe_recovery_probe() directly and
> ixgbe_recovery_probe() only frees partial resources, resulting in
> memory leaks including:
> - adapter->io_addr
> - adapter->jump_tables[0]
> - adapter->mac_table
> - adapter->rss_key
> - adapter->af_xdp_zc_qps
> 
> The leaked MMIO region can be observed in /proc/vmallocinfo, and the
> remaining leaks are reported by kmemleak.
> 
> Don't return ixgbe_recovery_probe() directly, and instead let
> ixgbe_probe() to clean up resources on failures.
> 
> Fixes: 29cb3b8d95c7 ("ixgbe: add E610 implementation of FW recovery
> mode")
> Signed-off-by: Kohei Enju <enjuk@amazon.com>
> ---
>  drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 20 ++++++++----------
> -
>  1 file changed, 8 insertions(+), 12 deletions(-)
> 
> diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
> b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
> index 4af3b3e71ff1..85023bb4e5a5 100644
> --- a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
> +++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
> @@ -11468,14 +11468,12 @@ static void ixgbe_set_fw_version(struct
> ixgbe_adapter *adapter)
>   */
>  static int ixgbe_recovery_probe(struct ixgbe_adapter *adapter)  {
> -	struct net_device *netdev = adapter->netdev;
>  	struct pci_dev *pdev = adapter->pdev;
>  	struct ixgbe_hw *hw = &adapter->hw;
> -	bool disable_dev;
>  	int err = -EIO;
> 
>  	if (hw->mac.type != ixgbe_mac_e610)
> -		goto clean_up_probe;
> +		return err;
You've removed the clean_up_probe: label and its cleanup code (free_netdev, devlink_free, pci_release_mem_regions, pci_disable_device) without providing a proof that ixgbe_probe()'s error path correctly handles all these resources.
I'm afraid this patch may trade one leak for another, or cause double-free issues.


> 
>  	ixgbe_get_hw_control(adapter);
>  	mutex_init(&hw->aci.lock);
> @@ -11507,13 +11505,6 @@ static int ixgbe_recovery_probe(struct
> ixgbe_adapter *adapter)
>  shutdown_aci:
>  	mutex_destroy(&adapter->hw.aci.lock);
>  	ixgbe_release_hw_control(adapter);
> -clean_up_probe:
> -	disable_dev = !test_and_set_bit(__IXGBE_DISABLED, &adapter-
> >state);
> -	free_netdev(netdev);
> -	devlink_free(adapter->devlink);
> -	pci_release_mem_regions(pdev);
> -	if (disable_dev)
> -		pci_disable_device(pdev);
>  	return err;
>  }
> 
> @@ -11655,8 +11646,13 @@ static int ixgbe_probe(struct pci_dev *pdev,
> const struct pci_device_id *ent)
>  	if (err)
>  		goto err_sw_init;
> 
> -	if (ixgbe_check_fw_error(adapter))
> -		return ixgbe_recovery_probe(adapter);
> +	if (ixgbe_check_fw_error(adapter)) {
> +		err = ixgbe_recovery_probe(adapter);
> +		if (err)
> +			goto err_sw_init;
The early return 0; on successful ixgbe_recovery_probe() bypasses the remainder of ixgbe_probe().
The commit message doesn't explain what subsequent initialization steps (if any) are intentionally skipped in recovery mode, or whether this is correct behavior.

> +
> +		return 0;
> +	}
> 
>  	if (adapter->hw.mac.type == ixgbe_mac_e610) {
>  		err = ixgbe_get_caps(&adapter->hw);
> --
> 2.52.0


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

* Re: [Intel-wired-lan] [PATCH iwl-net v2 1/2] ixgbe: fix memory leaks in the ixgbe_recovery_probe() path
  2025-12-11 10:13     ` Loktionov, Aleksandr
@ 2025-12-11 15:03       ` Kohei Enju
  -1 siblings, 0 replies; 14+ messages in thread
From: Kohei Enju @ 2025-12-11 15:03 UTC (permalink / raw)
  To: aleksandr.loktionov
  Cc: andrew+netdev, anthony.l.nguyen, davem, edumazet, enjuk, horms,
	intel-wired-lan, jacob.e.keller, jedrzej.jagielski, kohei, kuba,
	netdev, pabeni, przemyslaw.kitszel, stefan.wegrzyn

On Thu, 11 Dec 2025 10:13:09 +0000, Loktionov, Aleksandr wrote:

>> diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
>> b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
>> index 4af3b3e71ff1..85023bb4e5a5 100644
>> --- a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
>> +++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
>> @@ -11468,14 +11468,12 @@ static void ixgbe_set_fw_version(struct
>> ixgbe_adapter *adapter)
>>   */
>>  static int ixgbe_recovery_probe(struct ixgbe_adapter *adapter)  {
>> -	struct net_device *netdev = adapter->netdev;
>>  	struct pci_dev *pdev = adapter->pdev;
>>  	struct ixgbe_hw *hw = &adapter->hw;
>> -	bool disable_dev;
>>  	int err = -EIO;
>> 
>>  	if (hw->mac.type != ixgbe_mac_e610)
>> -		goto clean_up_probe;
>> +		return err;
>You've removed the clean_up_probe: label and its cleanup code (free_netdev, devlink_free, pci_release_mem_regions, pci_disable_device) without providing a proof that ixgbe_probe()'s error path correctly handles all these resources.
>I'm afraid this patch may trade one leak for another, or cause double-free issues.

Hi Alex, thank you for taking a look.

First, ixgbe_recovery_probe() is a static function and is only called
from ixgbe_probe(), so potential affected scope is limited to the
ixgbe_probe() function (at least for now). Also I don't think
ixgbe_recovery_probe() is a common util function which would be used in
other functions than ixgbe_probe().

Also I changed ixgbe_probe() to cleanup those resources when
ixgbe_recovery_probe() fails to keep consistency, just because those
resources are allocated by ixgbe_probe(), not by ixgbe_recovery_probe().

Considering the conversation I had in v1 patch [1], I think this change
would be acceptable, and rather preferable to reduce the possibility of
future regression.

[1] https://lore.kernel.org/all/b5787c94-2ad0-4519-9cdb-5e82acfebe05@intel.com/

>> @@ -11655,8 +11646,13 @@ static int ixgbe_probe(struct pci_dev *pdev,
>> const struct pci_device_id *ent)
>>  	if (err)
>>  		goto err_sw_init;
>> 
>> -	if (ixgbe_check_fw_error(adapter))
>> -		return ixgbe_recovery_probe(adapter);
>> +	if (ixgbe_check_fw_error(adapter)) {
>> +		err = ixgbe_recovery_probe(adapter);
>> +		if (err)
>> +			goto err_sw_init;
>The early return 0; on successful ixgbe_recovery_probe() bypasses the remainder of ixgbe_probe().
>The commit message doesn't explain what subsequent initialization steps (if any) are intentionally skipped in recovery mode, or whether this is correct behavior.

On successful path, ixgbe_probe() just returns ixgbe_recovery_probe()
and don't execute following codes, so there's no change of behavior.

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

* Re: RE: [Intel-wired-lan] [PATCH iwl-net v2 1/2] ixgbe: fix memory leaks in the ixgbe_recovery_probe() path
@ 2025-12-11 15:03       ` Kohei Enju
  0 siblings, 0 replies; 14+ messages in thread
From: Kohei Enju @ 2025-12-11 15:03 UTC (permalink / raw)
  To: aleksandr.loktionov
  Cc: andrew+netdev, anthony.l.nguyen, davem, edumazet, enjuk, horms,
	intel-wired-lan, jacob.e.keller, jedrzej.jagielski, kohei, kuba,
	netdev, pabeni, przemyslaw.kitszel, stefan.wegrzyn

On Thu, 11 Dec 2025 10:13:09 +0000, Loktionov, Aleksandr wrote:

>> diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
>> b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
>> index 4af3b3e71ff1..85023bb4e5a5 100644
>> --- a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
>> +++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
>> @@ -11468,14 +11468,12 @@ static void ixgbe_set_fw_version(struct
>> ixgbe_adapter *adapter)
>>   */
>>  static int ixgbe_recovery_probe(struct ixgbe_adapter *adapter)  {
>> -	struct net_device *netdev = adapter->netdev;
>>  	struct pci_dev *pdev = adapter->pdev;
>>  	struct ixgbe_hw *hw = &adapter->hw;
>> -	bool disable_dev;
>>  	int err = -EIO;
>> 
>>  	if (hw->mac.type != ixgbe_mac_e610)
>> -		goto clean_up_probe;
>> +		return err;
>You've removed the clean_up_probe: label and its cleanup code (free_netdev, devlink_free, pci_release_mem_regions, pci_disable_device) without providing a proof that ixgbe_probe()'s error path correctly handles all these resources.
>I'm afraid this patch may trade one leak for another, or cause double-free issues.

Hi Alex, thank you for taking a look.

First, ixgbe_recovery_probe() is a static function and is only called
from ixgbe_probe(), so potential affected scope is limited to the
ixgbe_probe() function (at least for now). Also I don't think
ixgbe_recovery_probe() is a common util function which would be used in
other functions than ixgbe_probe().

Also I changed ixgbe_probe() to cleanup those resources when
ixgbe_recovery_probe() fails to keep consistency, just because those
resources are allocated by ixgbe_probe(), not by ixgbe_recovery_probe().

Considering the conversation I had in v1 patch [1], I think this change
would be acceptable, and rather preferable to reduce the possibility of
future regression.

[1] https://lore.kernel.org/all/b5787c94-2ad0-4519-9cdb-5e82acfebe05@intel.com/

>> @@ -11655,8 +11646,13 @@ static int ixgbe_probe(struct pci_dev *pdev,
>> const struct pci_device_id *ent)
>>  	if (err)
>>  		goto err_sw_init;
>> 
>> -	if (ixgbe_check_fw_error(adapter))
>> -		return ixgbe_recovery_probe(adapter);
>> +	if (ixgbe_check_fw_error(adapter)) {
>> +		err = ixgbe_recovery_probe(adapter);
>> +		if (err)
>> +			goto err_sw_init;
>The early return 0; on successful ixgbe_recovery_probe() bypasses the remainder of ixgbe_probe().
>The commit message doesn't explain what subsequent initialization steps (if any) are intentionally skipped in recovery mode, or whether this is correct behavior.

On successful path, ixgbe_probe() just returns ixgbe_recovery_probe()
and don't execute following codes, so there's no change of behavior.

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

* Re: [Intel-wired-lan] [PATCH iwl-net v2 2/2] ixgbe: don't initialize aci lock in ixgbe_recovery_probe()
  2025-12-11 10:12     ` Loktionov, Aleksandr
@ 2025-12-11 15:20       ` Kohei Enju
  -1 siblings, 0 replies; 14+ messages in thread
From: Kohei Enju @ 2025-12-11 15:20 UTC (permalink / raw)
  To: aleksandr.loktionov
  Cc: andrew+netdev, anthony.l.nguyen, davem, edumazet, enjuk, horms,
	intel-wired-lan, jacob.e.keller, jedrzej.jagielski, kohei, kuba,
	netdev, pabeni, przemyslaw.kitszel, stefan.wegrzyn

On Thu, 11 Dec 2025 10:12:19 +0000, Loktionov, Aleksandr wrote:

>> Subject: [Intel-wired-lan] [PATCH iwl-net v2 2/2] ixgbe: don't
>> initialize aci lock in ixgbe_recovery_probe()
>> 
>> hw->aci.lock is already initialized in ixgbe_sw_init(), so
>> ixgbe_recovery_probe() doesn't need to initialize the lock. This
>You claim that ixgbe_sw_init() initializes hw->aci.lock but don't provide evidence(s).
>Can you?

Hi Alex, thank you for reviewing!

Yeah, I claim that because currently ixgbe_recovery_probe() is only
called from ixgbe_probe(), and this is called after ixgbe_sw_init().
Also I don't expect ixgbe_recovery_probe() would be called from other
contexts in the future.

We confirmed the that double initialization would occur in the
context[1], but are there any recommended solutions we can adopt?

I understand that double initialization doesn't always introduce
realistic issue because it would be problematic only when reinialization
is done while the lock is held, but it's a fact that actually
unnecessary initialization is done in ixgbe_recovery_probe().

I believe this change would be right, but maybe we should ask Jedrzej
for the intention of mutex_init() in ixgbe_recovery_probe(), and
possibility that ixgbe_recovery_probe() would be called from any other
contexts.

[1] https://lore.kernel.org/all/b5787c94-2ad0-4519-9cdb-5e82acfebe05@intel.com/

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

* Re: RE: [Intel-wired-lan] [PATCH iwl-net v2 2/2] ixgbe: don't initialize aci lock in ixgbe_recovery_probe()
@ 2025-12-11 15:20       ` Kohei Enju
  0 siblings, 0 replies; 14+ messages in thread
From: Kohei Enju @ 2025-12-11 15:20 UTC (permalink / raw)
  To: aleksandr.loktionov
  Cc: andrew+netdev, anthony.l.nguyen, davem, edumazet, enjuk, horms,
	intel-wired-lan, jacob.e.keller, jedrzej.jagielski, kohei, kuba,
	netdev, pabeni, przemyslaw.kitszel, stefan.wegrzyn

On Thu, 11 Dec 2025 10:12:19 +0000, Loktionov, Aleksandr wrote:

>> Subject: [Intel-wired-lan] [PATCH iwl-net v2 2/2] ixgbe: don't
>> initialize aci lock in ixgbe_recovery_probe()
>> 
>> hw->aci.lock is already initialized in ixgbe_sw_init(), so
>> ixgbe_recovery_probe() doesn't need to initialize the lock. This
>You claim that ixgbe_sw_init() initializes hw->aci.lock but don't provide evidence(s).
>Can you?

Hi Alex, thank you for reviewing!

Yeah, I claim that because currently ixgbe_recovery_probe() is only
called from ixgbe_probe(), and this is called after ixgbe_sw_init().
Also I don't expect ixgbe_recovery_probe() would be called from other
contexts in the future.

We confirmed the that double initialization would occur in the
context[1], but are there any recommended solutions we can adopt?

I understand that double initialization doesn't always introduce
realistic issue because it would be problematic only when reinialization
is done while the lock is held, but it's a fact that actually
unnecessary initialization is done in ixgbe_recovery_probe().

I believe this change would be right, but maybe we should ask Jedrzej
for the intention of mutex_init() in ixgbe_recovery_probe(), and
possibility that ixgbe_recovery_probe() would be called from any other
contexts.

[1] https://lore.kernel.org/all/b5787c94-2ad0-4519-9cdb-5e82acfebe05@intel.com/

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

end of thread, other threads:[~2025-12-11 15:21 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-12-11  9:15 [Intel-wired-lan] [PATCH iwl-net v2 0/2] ixgbe: fix issues around ixgbe_recovery_probe() Kohei Enju
2025-12-11  9:15 ` Kohei Enju
2025-12-11  9:15 ` [Intel-wired-lan] [PATCH iwl-net v2 1/2] ixgbe: fix memory leaks in the ixgbe_recovery_probe() path Kohei Enju
2025-12-11  9:15   ` Kohei Enju
2025-12-11 10:13   ` [Intel-wired-lan] " Loktionov, Aleksandr
2025-12-11 10:13     ` Loktionov, Aleksandr
2025-12-11 15:03     ` Kohei Enju
2025-12-11 15:03       ` Kohei Enju
2025-12-11  9:15 ` [Intel-wired-lan] [PATCH iwl-net v2 2/2] ixgbe: don't initialize aci lock in ixgbe_recovery_probe() Kohei Enju
2025-12-11  9:15   ` Kohei Enju
2025-12-11 10:12   ` [Intel-wired-lan] " Loktionov, Aleksandr
2025-12-11 10:12     ` Loktionov, Aleksandr
2025-12-11 15:20     ` Kohei Enju
2025-12-11 15:20       ` Kohei Enju

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.