* [PATCH iwl-next 0/9] ice: pospone service task disabling
@ 2025-09-12 13:06 Przemek Kitszel
2025-09-12 13:06 ` [PATCH iwl-next 1/9] ice: enforce RTNL assumption of queue NAPI manipulation Przemek Kitszel
` (9 more replies)
0 siblings, 10 replies; 33+ messages in thread
From: Przemek Kitszel @ 2025-09-12 13:06 UTC (permalink / raw)
To: intel-wired-lan, Tony Nguyen
Cc: netdev, Michal Schmidt, Petr Oros, Simon Horman, Jacob Keller,
Przemek Kitszel
Move service task shutdown to the very end of driver teardown procedure.
This is needed (or at least beneficial) for all unwinding functions that
talk to FW/HW via Admin Queue (so, most of top-level functions, like
ice_deinit_hw()).
Most of the patches move stuff around (I believe it makes it much easier
to review/proof when kept separate) in preparation to defer stopping the
service task to the very end of ice_remove() (and other unwinding flows).
Then last patch fixes duplicate call to ice_init_hw() (actual, but
unlikely to encounter, so -next, given the size of the changes).
First patch is not much related, only by that it was developed together
with the rest, and is so small, that there is no point for separate thread
--
changes vs internal review:
Expanded cover letter (Jake).
Przemek Kitszel (9):
ice: enforce RTNL assumption of queue NAPI manipulation
ice: move service task start out of ice_init_pf()
ice: move ice_init_interrupt_scheme() prior ice_init_pf()
ice: ice_init_pf: destroy mutexes and xarrays on memory alloc failure
ice: move udp_tunnel_nic and misc IRQ setup into ice_init_pf()
ice: move ice_init_pf() out of ice_init_dev()
ice: extract ice_init_dev() from ice_init()
ice: move ice_deinit_dev() to the end of deinit paths
ice: remove duplicate call to ice_deinit_hw() on error paths
drivers/net/ethernet/intel/ice/ice.h | 4 +
.../net/ethernet/intel/ice/devlink/devlink.c | 21 ++-
drivers/net/ethernet/intel/ice/ice_common.c | 3 +
drivers/net/ethernet/intel/ice/ice_lib.c | 4 +-
drivers/net/ethernet/intel/ice/ice_main.c | 159 +++++++++---------
5 files changed, 109 insertions(+), 82 deletions(-)
--
2.39.3
^ permalink raw reply [flat|nested] 33+ messages in thread
* [PATCH iwl-next 1/9] ice: enforce RTNL assumption of queue NAPI manipulation
2025-09-12 13:06 [PATCH iwl-next 0/9] ice: pospone service task disabling Przemek Kitszel
@ 2025-09-12 13:06 ` Przemek Kitszel
2025-09-12 13:37 ` [Intel-wired-lan] " Paul Menzel
` (2 more replies)
2025-09-12 13:06 ` [PATCH iwl-next 2/9] ice: move service task start out of ice_init_pf() Przemek Kitszel
` (8 subsequent siblings)
9 siblings, 3 replies; 33+ messages in thread
From: Przemek Kitszel @ 2025-09-12 13:06 UTC (permalink / raw)
To: intel-wired-lan, Tony Nguyen
Cc: netdev, Michal Schmidt, Petr Oros, Simon Horman, Jacob Keller,
Przemek Kitszel
Instead of making assumptions in comments move them into code.
Be also more precise, RTNL must be locked only when there is
NAPI, and we have VSIs w/o NAPI that call ice_vsi_clear_napi_queues()
during rmmod.
Signed-off-by: Przemek Kitszel <przemyslaw.kitszel@intel.com>
---
CC:Larysa Zaremba <larysa.zaremba@intel.com>
---
drivers/net/ethernet/intel/ice/ice_lib.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/net/ethernet/intel/ice/ice_lib.c b/drivers/net/ethernet/intel/ice/ice_lib.c
index a439b5a61a56..3f1b2158be59 100644
--- a/drivers/net/ethernet/intel/ice/ice_lib.c
+++ b/drivers/net/ethernet/intel/ice/ice_lib.c
@@ -2769,16 +2769,16 @@ void ice_dis_vsi(struct ice_vsi *vsi, bool locked)
* @vsi: VSI pointer
*
* Associate queue[s] with napi for all vectors.
- * The caller must hold rtnl_lock.
*/
void ice_vsi_set_napi_queues(struct ice_vsi *vsi)
{
struct net_device *netdev = vsi->netdev;
int q_idx, v_idx;
if (!netdev)
return;
+ ASSERT_RTNL();
ice_for_each_rxq(vsi, q_idx)
netif_queue_set_napi(netdev, q_idx, NETDEV_QUEUE_TYPE_RX,
&vsi->rx_rings[q_idx]->q_vector->napi);
@@ -2799,16 +2799,16 @@ void ice_vsi_set_napi_queues(struct ice_vsi *vsi)
* @vsi: VSI pointer
*
* Clear the association between all VSI queues queue[s] and napi.
- * The caller must hold rtnl_lock.
*/
void ice_vsi_clear_napi_queues(struct ice_vsi *vsi)
{
struct net_device *netdev = vsi->netdev;
int q_idx, v_idx;
if (!netdev)
return;
+ ASSERT_RTNL();
/* Clear the NAPI's interrupt number */
ice_for_each_q_vector(vsi, v_idx) {
struct ice_q_vector *q_vector = vsi->q_vectors[v_idx];
--
2.39.3
^ permalink raw reply related [flat|nested] 33+ messages in thread
* [PATCH iwl-next 2/9] ice: move service task start out of ice_init_pf()
2025-09-12 13:06 [PATCH iwl-next 0/9] ice: pospone service task disabling Przemek Kitszel
2025-09-12 13:06 ` [PATCH iwl-next 1/9] ice: enforce RTNL assumption of queue NAPI manipulation Przemek Kitszel
@ 2025-09-12 13:06 ` Przemek Kitszel
2025-09-12 23:19 ` Jakub Kicinski
2025-09-29 12:17 ` [Intel-wired-lan] " Rinitha, SX
2025-09-12 13:06 ` [PATCH iwl-next 3/9] ice: move ice_init_interrupt_scheme() prior ice_init_pf() Przemek Kitszel
` (7 subsequent siblings)
9 siblings, 2 replies; 33+ messages in thread
From: Przemek Kitszel @ 2025-09-12 13:06 UTC (permalink / raw)
To: intel-wired-lan, Tony Nguyen
Cc: netdev, Michal Schmidt, Petr Oros, Simon Horman, Jacob Keller,
Przemek Kitszel
Move service task start out of ice_init_pf(). Do analogous with deinit.
Service task is needed up to the very end of driver removal, later commit
of the series will move it later on execution timeline.
Signed-off-by: Przemek Kitszel <przemyslaw.kitszel@intel.com>
---
drivers/net/ethernet/intel/ice/ice.h | 1 +
drivers/net/ethernet/intel/ice/ice_main.c | 18 +++++++++++-------
2 files changed, 12 insertions(+), 7 deletions(-)
diff --git a/drivers/net/ethernet/intel/ice/ice.h b/drivers/net/ethernet/intel/ice/ice.h
index e952d67388bf..184aab6221c2 100644
--- a/drivers/net/ethernet/intel/ice/ice.h
+++ b/drivers/net/ethernet/intel/ice/ice.h
@@ -1002,6 +1002,7 @@ int ice_open(struct net_device *netdev);
int ice_open_internal(struct net_device *netdev);
int ice_stop(struct net_device *netdev);
void ice_service_task_schedule(struct ice_pf *pf);
+void ice_start_service_task(struct ice_pf *pf);
int ice_load(struct ice_pf *pf);
void ice_unload(struct ice_pf *pf);
void ice_adv_lnk_speed_maps_init(void);
diff --git a/drivers/net/ethernet/intel/ice/ice_main.c b/drivers/net/ethernet/intel/ice/ice_main.c
index 92b95d92d599..53a535c76bd3 100644
--- a/drivers/net/ethernet/intel/ice/ice_main.c
+++ b/drivers/net/ethernet/intel/ice/ice_main.c
@@ -3975,7 +3975,6 @@ u16 ice_get_avail_rxq_count(struct ice_pf *pf)
*/
static void ice_deinit_pf(struct ice_pf *pf)
{
- ice_service_task_stop(pf);
mutex_destroy(&pf->lag_mutex);
mutex_destroy(&pf->adev_mutex);
mutex_destroy(&pf->sw_mutex);
@@ -4049,6 +4048,14 @@ static void ice_set_pf_caps(struct ice_pf *pf)
pf->max_pf_rxqs = func_caps->common_cap.num_rxq;
}
+void ice_start_service_task(struct ice_pf *pf)
+{
+ timer_setup(&pf->serv_tmr, ice_service_timer, 0);
+ pf->serv_tmr_period = HZ;
+ INIT_WORK(&pf->serv_task, ice_service_task);
+ clear_bit(ICE_SERVICE_SCHED, pf->state);
+}
+
/**
* ice_init_pf - Initialize general software structures (struct ice_pf)
* @pf: board private structure to initialize
@@ -4068,12 +4075,6 @@ static int ice_init_pf(struct ice_pf *pf)
init_waitqueue_head(&pf->reset_wait_queue);
- /* setup service timer and periodic service task */
- timer_setup(&pf->serv_tmr, ice_service_timer, 0);
- pf->serv_tmr_period = HZ;
- INIT_WORK(&pf->serv_task, ice_service_task);
- clear_bit(ICE_SERVICE_SCHED, pf->state);
-
mutex_init(&pf->avail_q_mutex);
pf->avail_txqs = bitmap_zalloc(pf->max_pf_txqs, GFP_KERNEL);
if (!pf->avail_txqs)
@@ -4768,6 +4769,7 @@ int ice_init_dev(struct ice_pf *pf)
ice_set_safe_mode_caps(hw);
}
+ ice_start_service_task(pf);
err = ice_init_pf(pf);
if (err) {
dev_err(dev, "ice_init_pf failed: %d\n", err);
@@ -4814,14 +4816,16 @@ int ice_init_dev(struct ice_pf *pf)
ice_clear_interrupt_scheme(pf);
unroll_pf_init:
ice_deinit_pf(pf);
+ ice_service_task_stop(pf);
return err;
}
void ice_deinit_dev(struct ice_pf *pf)
{
ice_free_irq_msix_misc(pf);
ice_deinit_pf(pf);
ice_deinit_hw(&pf->hw);
+ ice_service_task_stop(pf);
/* Service task is already stopped, so call reset directly. */
ice_reset(&pf->hw, ICE_RESET_PFR);
--
2.39.3
^ permalink raw reply related [flat|nested] 33+ messages in thread
* [PATCH iwl-next 3/9] ice: move ice_init_interrupt_scheme() prior ice_init_pf()
2025-09-12 13:06 [PATCH iwl-next 0/9] ice: pospone service task disabling Przemek Kitszel
2025-09-12 13:06 ` [PATCH iwl-next 1/9] ice: enforce RTNL assumption of queue NAPI manipulation Przemek Kitszel
2025-09-12 13:06 ` [PATCH iwl-next 2/9] ice: move service task start out of ice_init_pf() Przemek Kitszel
@ 2025-09-12 13:06 ` Przemek Kitszel
2025-09-15 6:31 ` [Intel-wired-lan] " Loktionov, Aleksandr
2025-09-29 12:25 ` Rinitha, SX
2025-09-12 13:06 ` [PATCH iwl-next 4/9] ice: ice_init_pf: destroy mutexes and xarrays on memory alloc failure Przemek Kitszel
` (6 subsequent siblings)
9 siblings, 2 replies; 33+ messages in thread
From: Przemek Kitszel @ 2025-09-12 13:06 UTC (permalink / raw)
To: intel-wired-lan, Tony Nguyen
Cc: netdev, Michal Schmidt, Petr Oros, Simon Horman, Jacob Keller,
Przemek Kitszel, Jakub Kicinski
Move ice_init_interrupt_scheme() prior ice_init_pf().
To enable the move ice_set_pf_caps() was moved out from ice_init_pf()
to the caller (ice_init_dev()), and placed prior to the irq scheme init.
The move makes deinit order of ice_deinit_dev() and failure-path of
ice_init_pf() match (at least in terms of not calling
ice_clear_interrupt_scheme() and ice_deinit_pf() in opposite ways).
The new order aligns with findings made by Jakub Buchocki in
the commit 24b454bc354a ("ice: Fix ice module unload").
Signed-off-by: Przemek Kitszel <przemyslaw.kitszel@intel.com>
---
CC: Jakub Kicinski <kuba@kernel.org>
---
drivers/net/ethernet/intel/ice/ice_main.c | 25 ++++++++++-------------
1 file changed, 11 insertions(+), 14 deletions(-)
diff --git a/drivers/net/ethernet/intel/ice/ice_main.c b/drivers/net/ethernet/intel/ice/ice_main.c
index 53a535c76bd3..3cf79afff1bd 100644
--- a/drivers/net/ethernet/intel/ice/ice_main.c
+++ b/drivers/net/ethernet/intel/ice/ice_main.c
@@ -4062,8 +4062,6 @@ void ice_start_service_task(struct ice_pf *pf)
*/
static int ice_init_pf(struct ice_pf *pf)
{
- ice_set_pf_caps(pf);
-
mutex_init(&pf->sw_mutex);
mutex_init(&pf->tc_mutex);
mutex_init(&pf->adev_mutex);
@@ -4769,11 +4767,18 @@ int ice_init_dev(struct ice_pf *pf)
ice_set_safe_mode_caps(hw);
}
+ ice_set_pf_caps(pf);
+ err = ice_init_interrupt_scheme(pf);
+ if (err) {
+ dev_err(dev, "ice_init_interrupt_scheme failed: %d\n", err);
+ return -EIO;
+ }
+
ice_start_service_task(pf);
err = ice_init_pf(pf);
if (err) {
dev_err(dev, "ice_init_pf failed: %d\n", err);
- return err;
+ goto unroll_irq_scheme_init;
}
pf->hw.udp_tunnel_nic.set_port = ice_udp_tunnel_set_port;
@@ -4791,32 +4796,24 @@ int ice_init_dev(struct ice_pf *pf)
pf->hw.udp_tunnel_nic.tables[1].tunnel_types =
UDP_TUNNEL_TYPE_GENEVE;
}
-
- err = ice_init_interrupt_scheme(pf);
- if (err) {
- dev_err(dev, "ice_init_interrupt_scheme failed: %d\n", err);
- err = -EIO;
- goto unroll_pf_init;
- }
-
/* In case of MSIX we are going to setup the misc vector right here
* to handle admin queue events etc. In case of legacy and MSI
* the misc functionality and queue processing is combined in
* the same vector and that gets setup at open.
*/
err = ice_req_irq_msix_misc(pf);
if (err) {
dev_err(dev, "setup of misc vector failed: %d\n", err);
- goto unroll_irq_scheme_init;
+ goto unroll_pf_init;
}
return 0;
-unroll_irq_scheme_init:
- ice_clear_interrupt_scheme(pf);
unroll_pf_init:
ice_deinit_pf(pf);
+unroll_irq_scheme_init:
ice_service_task_stop(pf);
+ ice_clear_interrupt_scheme(pf);
return err;
}
--
2.39.3
^ permalink raw reply related [flat|nested] 33+ messages in thread
* [PATCH iwl-next 4/9] ice: ice_init_pf: destroy mutexes and xarrays on memory alloc failure
2025-09-12 13:06 [PATCH iwl-next 0/9] ice: pospone service task disabling Przemek Kitszel
` (2 preceding siblings ...)
2025-09-12 13:06 ` [PATCH iwl-next 3/9] ice: move ice_init_interrupt_scheme() prior ice_init_pf() Przemek Kitszel
@ 2025-09-12 13:06 ` Przemek Kitszel
2025-09-15 6:32 ` [Intel-wired-lan] " Loktionov, Aleksandr
2025-09-29 12:26 ` Rinitha, SX
2025-09-12 13:06 ` [PATCH iwl-next 5/9] ice: move udp_tunnel_nic and misc IRQ setup into ice_init_pf() Przemek Kitszel
` (5 subsequent siblings)
9 siblings, 2 replies; 33+ messages in thread
From: Przemek Kitszel @ 2025-09-12 13:06 UTC (permalink / raw)
To: intel-wired-lan, Tony Nguyen
Cc: netdev, Michal Schmidt, Petr Oros, Simon Horman, Jacob Keller,
Przemek Kitszel
Unroll actions of ice_init_pf() when it fails.
ice_deinit_pf() happens to be perfect to call here.
Signed-off-by: Przemek Kitszel <przemyslaw.kitszel@intel.com>
---
drivers/net/ethernet/intel/ice/ice_main.c | 21 +++++++++++----------
1 file changed, 11 insertions(+), 10 deletions(-)
diff --git a/drivers/net/ethernet/intel/ice/ice_main.c b/drivers/net/ethernet/intel/ice/ice_main.c
index 3cf79afff1bd..f81603a754f9 100644
--- a/drivers/net/ethernet/intel/ice/ice_main.c
+++ b/drivers/net/ethernet/intel/ice/ice_main.c
@@ -3975,6 +3975,8 @@ u16 ice_get_avail_rxq_count(struct ice_pf *pf)
*/
static void ice_deinit_pf(struct ice_pf *pf)
{
+ /* note that we unroll also on ice_init_pf() failure here */
+
mutex_destroy(&pf->lag_mutex);
mutex_destroy(&pf->adev_mutex);
mutex_destroy(&pf->sw_mutex);
@@ -4074,16 +4076,6 @@ static int ice_init_pf(struct ice_pf *pf)
init_waitqueue_head(&pf->reset_wait_queue);
mutex_init(&pf->avail_q_mutex);
- pf->avail_txqs = bitmap_zalloc(pf->max_pf_txqs, GFP_KERNEL);
- if (!pf->avail_txqs)
- return -ENOMEM;
-
- pf->avail_rxqs = bitmap_zalloc(pf->max_pf_rxqs, GFP_KERNEL);
- if (!pf->avail_rxqs) {
- bitmap_free(pf->avail_txqs);
- pf->avail_txqs = NULL;
- return -ENOMEM;
- }
mutex_init(&pf->vfs.table_lock);
hash_init(pf->vfs.table);
@@ -4096,7 +4088,16 @@ static int ice_init_pf(struct ice_pf *pf)
xa_init(&pf->dyn_ports);
xa_init(&pf->sf_nums);
+ pf->avail_txqs = bitmap_zalloc(pf->max_pf_txqs, GFP_KERNEL);
+ pf->avail_rxqs = bitmap_zalloc(pf->max_pf_rxqs, GFP_KERNEL);
+ if (!pf->avail_txqs || !pf->avail_rxqs)
+ goto undo_init;
+
return 0;
+undo_init:
+ /* deinit handles half-initialized pf just fine */
+ ice_deinit_pf(pf);
+ return -ENOMEM;
}
/**
--
2.39.3
^ permalink raw reply related [flat|nested] 33+ messages in thread
* [PATCH iwl-next 5/9] ice: move udp_tunnel_nic and misc IRQ setup into ice_init_pf()
2025-09-12 13:06 [PATCH iwl-next 0/9] ice: pospone service task disabling Przemek Kitszel
` (3 preceding siblings ...)
2025-09-12 13:06 ` [PATCH iwl-next 4/9] ice: ice_init_pf: destroy mutexes and xarrays on memory alloc failure Przemek Kitszel
@ 2025-09-12 13:06 ` Przemek Kitszel
2025-09-15 6:33 ` [Intel-wired-lan] " Loktionov, Aleksandr
2025-09-29 12:26 ` Rinitha, SX
2025-09-12 13:06 ` [PATCH iwl-next 6/9] ice: move ice_init_pf() out of ice_init_dev() Przemek Kitszel
` (4 subsequent siblings)
9 siblings, 2 replies; 33+ messages in thread
From: Przemek Kitszel @ 2025-09-12 13:06 UTC (permalink / raw)
To: intel-wired-lan, Tony Nguyen
Cc: netdev, Michal Schmidt, Petr Oros, Simon Horman, Jacob Keller,
Przemek Kitszel
Move udp_tunnel_nic setup and ice_req_irq_msix_misc() call into
ice_init_pf(), remove some redundancy in the former while moving.
Move ice_free_irq_msix_misc() call into ice_deinit_pf(), to mimic
the above in terms of needed cleanup. Guard it via emptiness check,
to keep the allowance of half-initialized pf being cleaned up.
Signed-off-by: Przemek Kitszel <przemyslaw.kitszel@intel.com>
---
drivers/net/ethernet/intel/ice/ice_main.c | 58 +++++++++++------------
1 file changed, 28 insertions(+), 30 deletions(-)
diff --git a/drivers/net/ethernet/intel/ice/ice_main.c b/drivers/net/ethernet/intel/ice/ice_main.c
index f81603a754f9..ae8339f7d2ff 100644
--- a/drivers/net/ethernet/intel/ice/ice_main.c
+++ b/drivers/net/ethernet/intel/ice/ice_main.c
@@ -3997,6 +3997,9 @@ static void ice_deinit_pf(struct ice_pf *pf)
if (pf->ptp.clock)
ptp_clock_unregister(pf->ptp.clock);
+ if (!xa_empty(&pf->irq_tracker.entries))
+ ice_free_irq_msix_misc(pf);
+
xa_destroy(&pf->dyn_ports);
xa_destroy(&pf->sf_nums);
}
@@ -4064,6 +4067,11 @@ void ice_start_service_task(struct ice_pf *pf)
*/
static int ice_init_pf(struct ice_pf *pf)
{
+ struct udp_tunnel_nic_info *udp_tunnel_nic = &pf->hw.udp_tunnel_nic;
+ struct device *dev = ice_pf_to_dev(pf);
+ struct ice_hw *hw = &pf->hw;
+ int err = -ENOMEM;
+
mutex_init(&pf->sw_mutex);
mutex_init(&pf->tc_mutex);
mutex_init(&pf->adev_mutex);
@@ -4093,11 +4101,30 @@ static int ice_init_pf(struct ice_pf *pf)
if (!pf->avail_txqs || !pf->avail_rxqs)
goto undo_init;
+ udp_tunnel_nic->set_port = ice_udp_tunnel_set_port;
+ udp_tunnel_nic->unset_port = ice_udp_tunnel_unset_port;
+ udp_tunnel_nic->shared = &hw->udp_tunnel_shared;
+ udp_tunnel_nic->tables[0].n_entries = hw->tnl.valid_count[TNL_VXLAN];
+ udp_tunnel_nic->tables[0].tunnel_types = UDP_TUNNEL_TYPE_VXLAN;
+ udp_tunnel_nic->tables[1].n_entries = hw->tnl.valid_count[TNL_GENEVE];
+ udp_tunnel_nic->tables[1].tunnel_types = UDP_TUNNEL_TYPE_GENEVE;
+
+ /* In case of MSIX we are going to setup the misc vector right here
+ * to handle admin queue events etc. In case of legacy and MSI
+ * the misc functionality and queue processing is combined in
+ * the same vector and that gets setup at open.
+ */
+ err = ice_req_irq_msix_misc(pf);
+ if (err) {
+ dev_err(dev, "setup of misc vector failed: %d\n", err);
+ goto undo_init;
+ }
+
return 0;
undo_init:
/* deinit handles half-initialized pf just fine */
ice_deinit_pf(pf);
- return -ENOMEM;
+ return err;
}
/**
@@ -4782,45 +4809,16 @@ int ice_init_dev(struct ice_pf *pf)
goto unroll_irq_scheme_init;
}
- pf->hw.udp_tunnel_nic.set_port = ice_udp_tunnel_set_port;
- pf->hw.udp_tunnel_nic.unset_port = ice_udp_tunnel_unset_port;
- pf->hw.udp_tunnel_nic.shared = &pf->hw.udp_tunnel_shared;
- if (pf->hw.tnl.valid_count[TNL_VXLAN]) {
- pf->hw.udp_tunnel_nic.tables[0].n_entries =
- pf->hw.tnl.valid_count[TNL_VXLAN];
- pf->hw.udp_tunnel_nic.tables[0].tunnel_types =
- UDP_TUNNEL_TYPE_VXLAN;
- }
- if (pf->hw.tnl.valid_count[TNL_GENEVE]) {
- pf->hw.udp_tunnel_nic.tables[1].n_entries =
- pf->hw.tnl.valid_count[TNL_GENEVE];
- pf->hw.udp_tunnel_nic.tables[1].tunnel_types =
- UDP_TUNNEL_TYPE_GENEVE;
- }
- /* In case of MSIX we are going to setup the misc vector right here
- * to handle admin queue events etc. In case of legacy and MSI
- * the misc functionality and queue processing is combined in
- * the same vector and that gets setup at open.
- */
- err = ice_req_irq_msix_misc(pf);
- if (err) {
- dev_err(dev, "setup of misc vector failed: %d\n", err);
- goto unroll_pf_init;
- }
-
return 0;
-unroll_pf_init:
- ice_deinit_pf(pf);
unroll_irq_scheme_init:
ice_service_task_stop(pf);
ice_clear_interrupt_scheme(pf);
return err;
}
void ice_deinit_dev(struct ice_pf *pf)
{
- ice_free_irq_msix_misc(pf);
ice_deinit_pf(pf);
ice_deinit_hw(&pf->hw);
ice_service_task_stop(pf);
--
2.39.3
^ permalink raw reply related [flat|nested] 33+ messages in thread
* [PATCH iwl-next 6/9] ice: move ice_init_pf() out of ice_init_dev()
2025-09-12 13:06 [PATCH iwl-next 0/9] ice: pospone service task disabling Przemek Kitszel
` (4 preceding siblings ...)
2025-09-12 13:06 ` [PATCH iwl-next 5/9] ice: move udp_tunnel_nic and misc IRQ setup into ice_init_pf() Przemek Kitszel
@ 2025-09-12 13:06 ` Przemek Kitszel
2025-09-15 6:35 ` [Intel-wired-lan] " Loktionov, Aleksandr
2025-09-29 12:31 ` Rinitha, SX
2025-09-12 13:06 ` [PATCH iwl-next 7/9] ice: extract ice_init_dev() from ice_init() Przemek Kitszel
` (3 subsequent siblings)
9 siblings, 2 replies; 33+ messages in thread
From: Przemek Kitszel @ 2025-09-12 13:06 UTC (permalink / raw)
To: intel-wired-lan, Tony Nguyen
Cc: netdev, Michal Schmidt, Petr Oros, Simon Horman, Jacob Keller,
Przemek Kitszel
Move ice_init_pf() out of ice_init_dev().
Do the same for deinit counterpart.
Signed-off-by: Przemek Kitszel <przemyslaw.kitszel@intel.com>
---
drivers/net/ethernet/intel/ice/ice.h | 2 ++
.../net/ethernet/intel/ice/devlink/devlink.c | 16 ++++++++--
drivers/net/ethernet/intel/ice/ice_main.c | 32 +++++++++----------
3 files changed, 31 insertions(+), 19 deletions(-)
diff --git a/drivers/net/ethernet/intel/ice/ice.h b/drivers/net/ethernet/intel/ice/ice.h
index 184aab6221c2..38e34246c803 100644
--- a/drivers/net/ethernet/intel/ice/ice.h
+++ b/drivers/net/ethernet/intel/ice/ice.h
@@ -1008,6 +1008,8 @@ void ice_unload(struct ice_pf *pf);
void ice_adv_lnk_speed_maps_init(void);
int ice_init_dev(struct ice_pf *pf);
void ice_deinit_dev(struct ice_pf *pf);
+int ice_init_pf(struct ice_pf *pf);
+void ice_deinit_pf(struct ice_pf *pf);
int ice_change_mtu(struct net_device *netdev, int new_mtu);
void ice_tx_timeout(struct net_device *netdev, unsigned int txqueue);
int ice_xdp(struct net_device *dev, struct netdev_bpf *xdp);
diff --git a/drivers/net/ethernet/intel/ice/devlink/devlink.c b/drivers/net/ethernet/intel/ice/devlink/devlink.c
index fb2de521731a..c354a03c950c 100644
--- a/drivers/net/ethernet/intel/ice/devlink/devlink.c
+++ b/drivers/net/ethernet/intel/ice/devlink/devlink.c
@@ -459,6 +459,7 @@ static void ice_devlink_reinit_down(struct ice_pf *pf)
rtnl_lock();
ice_vsi_decfg(ice_get_main_vsi(pf));
rtnl_unlock();
+ ice_deinit_pf(pf);
ice_deinit_dev(pf);
}
@@ -1231,11 +1232,12 @@ static void ice_set_min_max_msix(struct ice_pf *pf)
static int ice_devlink_reinit_up(struct ice_pf *pf)
{
struct ice_vsi *vsi = ice_get_main_vsi(pf);
+ struct device *dev = ice_pf_to_dev(pf);
int err;
err = ice_init_hw(&pf->hw);
if (err) {
- dev_err(ice_pf_to_dev(pf), "ice_init_hw failed: %d\n", err);
+ dev_err(dev, "ice_init_hw failed: %d\n", err);
return err;
}
@@ -1246,13 +1248,19 @@ static int ice_devlink_reinit_up(struct ice_pf *pf)
if (err)
goto unroll_hw_init;
+ err = ice_init_pf(pf);
+ if (err) {
+ dev_err(dev, "ice_init_pf failed: %d\n", err);
+ goto unroll_dev_init;
+ }
+
vsi->flags = ICE_VSI_FLAG_INIT;
rtnl_lock();
err = ice_vsi_cfg(vsi);
rtnl_unlock();
if (err)
- goto err_vsi_cfg;
+ goto unroll_pf_init;
/* No need to take devl_lock, it's already taken by devlink API */
err = ice_load(pf);
@@ -1265,7 +1273,9 @@ static int ice_devlink_reinit_up(struct ice_pf *pf)
rtnl_lock();
ice_vsi_decfg(vsi);
rtnl_unlock();
-err_vsi_cfg:
+unroll_pf_init:
+ ice_deinit_pf(pf);
+unroll_dev_init:
ice_deinit_dev(pf);
unroll_hw_init:
ice_deinit_hw(&pf->hw);
diff --git a/drivers/net/ethernet/intel/ice/ice_main.c b/drivers/net/ethernet/intel/ice/ice_main.c
index ae8339f7d2ff..6d9de6e24804 100644
--- a/drivers/net/ethernet/intel/ice/ice_main.c
+++ b/drivers/net/ethernet/intel/ice/ice_main.c
@@ -3973,7 +3973,7 @@ u16 ice_get_avail_rxq_count(struct ice_pf *pf)
* ice_deinit_pf - Unrolls initialziations done by ice_init_pf
* @pf: board private structure to initialize
*/
-static void ice_deinit_pf(struct ice_pf *pf)
+void ice_deinit_pf(struct ice_pf *pf)
{
/* note that we unroll also on ice_init_pf() failure here */
@@ -4064,8 +4064,9 @@ void ice_start_service_task(struct ice_pf *pf)
/**
* ice_init_pf - Initialize general software structures (struct ice_pf)
* @pf: board private structure to initialize
+ * Return: 0 on success, negative errno otherwise.
*/
-static int ice_init_pf(struct ice_pf *pf)
+int ice_init_pf(struct ice_pf *pf)
{
struct udp_tunnel_nic_info *udp_tunnel_nic = &pf->hw.udp_tunnel_nic;
struct device *dev = ice_pf_to_dev(pf);
@@ -4803,23 +4804,12 @@ int ice_init_dev(struct ice_pf *pf)
}
ice_start_service_task(pf);
- err = ice_init_pf(pf);
- if (err) {
- dev_err(dev, "ice_init_pf failed: %d\n", err);
- goto unroll_irq_scheme_init;
- }
return 0;
-
-unroll_irq_scheme_init:
- ice_service_task_stop(pf);
- ice_clear_interrupt_scheme(pf);
- return err;
}
void ice_deinit_dev(struct ice_pf *pf)
{
- ice_deinit_pf(pf);
ice_deinit_hw(&pf->hw);
ice_service_task_stop(pf);
@@ -5061,21 +5051,28 @@ static void ice_deinit_devlink(struct ice_pf *pf)
static int ice_init(struct ice_pf *pf)
{
+ struct device *dev = ice_pf_to_dev(pf);
int err;
err = ice_init_dev(pf);
if (err)
return err;
+ err = ice_init_pf(pf);
+ if (err) {
+ dev_err(dev, "ice_init_pf failed: %d\n", err);
+ goto unroll_dev_init;
+ }
+
if (pf->hw.mac_type == ICE_MAC_E830) {
err = pci_enable_ptm(pf->pdev, NULL);
if (err)
- dev_dbg(ice_pf_to_dev(pf), "PCIe PTM not supported by PCIe bus/controller\n");
+ dev_dbg(dev, "PCIe PTM not supported by PCIe bus/controller\n");
}
err = ice_alloc_vsis(pf);
if (err)
- goto err_alloc_vsis;
+ goto unroll_pf_init;
err = ice_init_pf_sw(pf);
if (err)
@@ -5112,7 +5109,9 @@ static int ice_init(struct ice_pf *pf)
ice_deinit_pf_sw(pf);
err_init_pf_sw:
ice_dealloc_vsis(pf);
-err_alloc_vsis:
+unroll_pf_init:
+ ice_deinit_pf(pf);
+unroll_dev_init:
ice_deinit_dev(pf);
return err;
}
@@ -5124,6 +5123,7 @@ static void ice_deinit(struct ice_pf *pf)
ice_deinit_pf_sw(pf);
ice_dealloc_vsis(pf);
+ ice_deinit_pf(pf);
ice_deinit_dev(pf);
}
--
2.39.3
^ permalink raw reply related [flat|nested] 33+ messages in thread
* [PATCH iwl-next 7/9] ice: extract ice_init_dev() from ice_init()
2025-09-12 13:06 [PATCH iwl-next 0/9] ice: pospone service task disabling Przemek Kitszel
` (5 preceding siblings ...)
2025-09-12 13:06 ` [PATCH iwl-next 6/9] ice: move ice_init_pf() out of ice_init_dev() Przemek Kitszel
@ 2025-09-12 13:06 ` Przemek Kitszel
2025-09-15 6:36 ` [Intel-wired-lan] " Loktionov, Aleksandr
2025-09-29 12:31 ` Rinitha, SX
2025-09-12 13:06 ` [PATCH iwl-next 8/9] ice: move ice_deinit_dev() to the end of deinit paths Przemek Kitszel
` (2 subsequent siblings)
9 siblings, 2 replies; 33+ messages in thread
From: Przemek Kitszel @ 2025-09-12 13:06 UTC (permalink / raw)
To: intel-wired-lan, Tony Nguyen
Cc: netdev, Michal Schmidt, Petr Oros, Simon Horman, Jacob Keller,
Przemek Kitszel
Extract ice_init_dev() from ice_init(), to allow service task and IRQ
scheme teardown to be put after clearing SW constructs in the subsequent
commit.
Signed-off-by: Przemek Kitszel <przemyslaw.kitszel@intel.com>
---
drivers/net/ethernet/intel/ice/ice_main.c | 18 +++++++++---------
1 file changed, 9 insertions(+), 9 deletions(-)
diff --git a/drivers/net/ethernet/intel/ice/ice_main.c b/drivers/net/ethernet/intel/ice/ice_main.c
index 6d9de6e24804..faee44ad5928 100644
--- a/drivers/net/ethernet/intel/ice/ice_main.c
+++ b/drivers/net/ethernet/intel/ice/ice_main.c
@@ -5054,14 +5054,10 @@ static int ice_init(struct ice_pf *pf)
struct device *dev = ice_pf_to_dev(pf);
int err;
- err = ice_init_dev(pf);
- if (err)
- return err;
-
err = ice_init_pf(pf);
if (err) {
dev_err(dev, "ice_init_pf failed: %d\n", err);
- goto unroll_dev_init;
+ return err;
}
if (pf->hw.mac_type == ICE_MAC_E830) {
@@ -5111,8 +5107,6 @@ static int ice_init(struct ice_pf *pf)
ice_dealloc_vsis(pf);
unroll_pf_init:
ice_deinit_pf(pf);
-unroll_dev_init:
- ice_deinit_dev(pf);
return err;
}
@@ -5124,7 +5118,6 @@ static void ice_deinit(struct ice_pf *pf)
ice_deinit_pf_sw(pf);
ice_dealloc_vsis(pf);
ice_deinit_pf(pf);
- ice_deinit_dev(pf);
}
/**
@@ -5354,10 +5347,14 @@ ice_probe(struct pci_dev *pdev, const struct pci_device_id __always_unused *ent)
}
pf->adapter = adapter;
- err = ice_init(pf);
+ err = ice_init_dev(pf);
if (err)
goto unroll_adapter;
+ err = ice_init(pf);
+ if (err)
+ goto unroll_dev_init;
+
devl_lock(priv_to_devlink(pf));
err = ice_load(pf);
if (err)
@@ -5375,6 +5372,8 @@ ice_probe(struct pci_dev *pdev, const struct pci_device_id __always_unused *ent)
unroll_init:
devl_unlock(priv_to_devlink(pf));
ice_deinit(pf);
+unroll_dev_init:
+ ice_deinit_dev(pf);
unroll_adapter:
ice_adapter_put(pdev);
unroll_hw_init:
@@ -5488,6 +5487,7 @@ static void ice_remove(struct pci_dev *pdev)
devl_unlock(priv_to_devlink(pf));
ice_deinit(pf);
+ ice_deinit_dev(pf);
ice_vsi_release_all(pf);
ice_setup_mc_magic_wake(pf);
--
2.39.3
^ permalink raw reply related [flat|nested] 33+ messages in thread
* [PATCH iwl-next 8/9] ice: move ice_deinit_dev() to the end of deinit paths
2025-09-12 13:06 [PATCH iwl-next 0/9] ice: pospone service task disabling Przemek Kitszel
` (6 preceding siblings ...)
2025-09-12 13:06 ` [PATCH iwl-next 7/9] ice: extract ice_init_dev() from ice_init() Przemek Kitszel
@ 2025-09-12 13:06 ` Przemek Kitszel
2025-09-15 6:36 ` [Intel-wired-lan] " Loktionov, Aleksandr
2025-09-29 12:31 ` Rinitha, SX
2025-09-12 13:06 ` [PATCH iwl-next 9/9] ice: remove duplicate call to ice_deinit_hw() on error paths Przemek Kitszel
2025-09-12 13:37 ` [Intel-wired-lan] [PATCH iwl-next 0/9] ice: pospone service task disabling Paul Menzel
9 siblings, 2 replies; 33+ messages in thread
From: Przemek Kitszel @ 2025-09-12 13:06 UTC (permalink / raw)
To: intel-wired-lan, Tony Nguyen
Cc: netdev, Michal Schmidt, Petr Oros, Simon Horman, Jacob Keller,
Przemek Kitszel
ice_deinit_dev() takes care of turning off adminq processing, which is
much needed during driver teardown (remove, reset, error path). Move it
to the very end where applicable.
For example, ice_deinit_hw() called after adminq deinit slows rmmod on
my two-card setup by about 60 seconds.
ice_init_dev() and ice_deinit_dev() scopes were reduced by previous
commits of the series, with a final touch of extracting ice_init_dev_hw()
out now (there is no deinit counterpart).
Note that removed ice_service_task_stop() call from ice_remove() is placed
in the ice_deinit_dev() (and stopping twice makes no sense).
Signed-off-by: Przemek Kitszel <przemyslaw.kitszel@intel.com>
---
drivers/net/ethernet/intel/ice/ice.h | 1 +
.../net/ethernet/intel/ice/devlink/devlink.c | 5 +++-
drivers/net/ethernet/intel/ice/ice_common.c | 3 +++
drivers/net/ethernet/intel/ice/ice_main.c | 23 ++++++++++++-------
4 files changed, 23 insertions(+), 9 deletions(-)
diff --git a/drivers/net/ethernet/intel/ice/ice.h b/drivers/net/ethernet/intel/ice/ice.h
index 38e34246c803..34b9d67e94de 100644
--- a/drivers/net/ethernet/intel/ice/ice.h
+++ b/drivers/net/ethernet/intel/ice/ice.h
@@ -1006,6 +1006,7 @@ void ice_start_service_task(struct ice_pf *pf);
int ice_load(struct ice_pf *pf);
void ice_unload(struct ice_pf *pf);
void ice_adv_lnk_speed_maps_init(void);
+void ice_init_dev_hw(struct ice_pf *pf);
int ice_init_dev(struct ice_pf *pf);
void ice_deinit_dev(struct ice_pf *pf);
int ice_init_pf(struct ice_pf *pf);
diff --git a/drivers/net/ethernet/intel/ice/devlink/devlink.c b/drivers/net/ethernet/intel/ice/devlink/devlink.c
index c354a03c950c..938914abbe06 100644
--- a/drivers/net/ethernet/intel/ice/devlink/devlink.c
+++ b/drivers/net/ethernet/intel/ice/devlink/devlink.c
@@ -1233,6 +1233,7 @@ static int ice_devlink_reinit_up(struct ice_pf *pf)
{
struct ice_vsi *vsi = ice_get_main_vsi(pf);
struct device *dev = ice_pf_to_dev(pf);
+ bool need_dev_deinit = false;
int err;
err = ice_init_hw(&pf->hw);
@@ -1276,9 +1277,11 @@ static int ice_devlink_reinit_up(struct ice_pf *pf)
unroll_pf_init:
ice_deinit_pf(pf);
unroll_dev_init:
- ice_deinit_dev(pf);
+ need_dev_deinit = true;
unroll_hw_init:
ice_deinit_hw(&pf->hw);
+ if (need_dev_deinit)
+ ice_deinit_dev(pf);
return err;
}
diff --git a/drivers/net/ethernet/intel/ice/ice_common.c b/drivers/net/ethernet/intel/ice/ice_common.c
index 808870539667..2272b0bd2add 100644
--- a/drivers/net/ethernet/intel/ice/ice_common.c
+++ b/drivers/net/ethernet/intel/ice/ice_common.c
@@ -1130,6 +1130,9 @@ int ice_init_hw(struct ice_hw *hw)
status = ice_init_hw_tbls(hw);
if (status)
goto err_unroll_fltr_mgmt_struct;
+
+ ice_init_dev_hw(hw->back);
+
mutex_init(&hw->tnl_lock);
ice_init_chk_recipe_reuse_support(hw);
diff --git a/drivers/net/ethernet/intel/ice/ice_main.c b/drivers/net/ethernet/intel/ice/ice_main.c
index faee44ad5928..c169134beb04 100644
--- a/drivers/net/ethernet/intel/ice/ice_main.c
+++ b/drivers/net/ethernet/intel/ice/ice_main.c
@@ -4773,9 +4773,8 @@ static void ice_decfg_netdev(struct ice_vsi *vsi)
vsi->netdev = NULL;
}
-int ice_init_dev(struct ice_pf *pf)
+void ice_init_dev_hw(struct ice_pf *pf)
{
- struct device *dev = ice_pf_to_dev(pf);
struct ice_hw *hw = &pf->hw;
int err;
@@ -4795,6 +4794,12 @@ int ice_init_dev(struct ice_pf *pf)
*/
ice_set_safe_mode_caps(hw);
}
+}
+
+int ice_init_dev(struct ice_pf *pf)
+{
+ struct device *dev = ice_pf_to_dev(pf);
+ int err;
ice_set_pf_caps(pf);
err = ice_init_interrupt_scheme(pf);
@@ -5251,6 +5256,7 @@ static int
ice_probe(struct pci_dev *pdev, const struct pci_device_id __always_unused *ent)
{
struct device *dev = &pdev->dev;
+ bool need_dev_deinit = false;
struct ice_adapter *adapter;
struct ice_pf *pf;
struct ice_hw *hw;
@@ -5373,11 +5379,13 @@ ice_probe(struct pci_dev *pdev, const struct pci_device_id __always_unused *ent)
devl_unlock(priv_to_devlink(pf));
ice_deinit(pf);
unroll_dev_init:
- ice_deinit_dev(pf);
+ need_dev_deinit = true;
unroll_adapter:
ice_adapter_put(pdev);
unroll_hw_init:
ice_deinit_hw(hw);
+ if (need_dev_deinit)
+ ice_deinit_dev(pf);
return err;
}
@@ -5472,10 +5480,6 @@ static void ice_remove(struct pci_dev *pdev)
ice_hwmon_exit(pf);
- ice_service_task_stop(pf);
- ice_aq_cancel_waiting_tasks(pf);
- set_bit(ICE_DOWN, pf->state);
-
if (!ice_is_safe_mode(pf))
ice_remove_arfs(pf);
@@ -5487,13 +5491,16 @@ static void ice_remove(struct pci_dev *pdev)
devl_unlock(priv_to_devlink(pf));
ice_deinit(pf);
- ice_deinit_dev(pf);
ice_vsi_release_all(pf);
ice_setup_mc_magic_wake(pf);
ice_set_wake(pf);
ice_adapter_put(pdev);
+
+ ice_deinit_dev(pf);
+ ice_aq_cancel_waiting_tasks(pf);
+ set_bit(ICE_DOWN, pf->state);
}
/**
--
2.39.3
^ permalink raw reply related [flat|nested] 33+ messages in thread
* [PATCH iwl-next 9/9] ice: remove duplicate call to ice_deinit_hw() on error paths
2025-09-12 13:06 [PATCH iwl-next 0/9] ice: pospone service task disabling Przemek Kitszel
` (7 preceding siblings ...)
2025-09-12 13:06 ` [PATCH iwl-next 8/9] ice: move ice_deinit_dev() to the end of deinit paths Przemek Kitszel
@ 2025-09-12 13:06 ` Przemek Kitszel
2025-09-15 6:37 ` [Intel-wired-lan] " Loktionov, Aleksandr
2025-09-29 12:32 ` Rinitha, SX
2025-09-12 13:37 ` [Intel-wired-lan] [PATCH iwl-next 0/9] ice: pospone service task disabling Paul Menzel
9 siblings, 2 replies; 33+ messages in thread
From: Przemek Kitszel @ 2025-09-12 13:06 UTC (permalink / raw)
To: intel-wired-lan, Tony Nguyen
Cc: netdev, Michal Schmidt, Petr Oros, Simon Horman, Jacob Keller,
Przemek Kitszel
Current unwinding code on error paths of ice_devlink_reinit_up() and
ice_probe() have manual call to ice_deinit_hw() (which is good, as there
is also manual call to ice_hw_init() there), which is then duplicated
(and was prior current series) in ice_deinit_dev().
Fix the above by removing ice_deinit_hw() from ice_deinit_dev().
Add a (now missing) call in ice_remove().
Reported-by: Jacob Keller <jacob.e.keller@intel.com>
Link: https://patchwork.ozlabs.org/project/intel-wired-lan/patch/20250717-jk-ddp-safe-mode-issue-v1-1-e113b2baed79@intel.com
Fixes: 4d3f59bfa2cd ("ice: split ice_init_hw() out from ice_init_dev()")
Signed-off-by: Przemek Kitszel <przemyslaw.kitszel@intel.com>
---
This series obsoletes patch by Jake Link:ed above; already removed from our
dev-queue
---
drivers/net/ethernet/intel/ice/ice_main.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/net/ethernet/intel/ice/ice_main.c b/drivers/net/ethernet/intel/ice/ice_main.c
index c169134beb04..6b197d44f56d 100644
--- a/drivers/net/ethernet/intel/ice/ice_main.c
+++ b/drivers/net/ethernet/intel/ice/ice_main.c
@@ -4815,7 +4815,6 @@ int ice_init_dev(struct ice_pf *pf)
void ice_deinit_dev(struct ice_pf *pf)
{
- ice_deinit_hw(&pf->hw);
ice_service_task_stop(pf);
/* Service task is already stopped, so call reset directly. */
@@ -5497,6 +5496,7 @@ static void ice_remove(struct pci_dev *pdev)
ice_set_wake(pf);
ice_adapter_put(pdev);
+ ice_deinit_hw(&pf->hw);
ice_deinit_dev(pf);
ice_aq_cancel_waiting_tasks(pf);
--
2.39.3
^ permalink raw reply related [flat|nested] 33+ messages in thread
* Re: [Intel-wired-lan] [PATCH iwl-next 1/9] ice: enforce RTNL assumption of queue NAPI manipulation
2025-09-12 13:06 ` [PATCH iwl-next 1/9] ice: enforce RTNL assumption of queue NAPI manipulation Przemek Kitszel
@ 2025-09-12 13:37 ` Paul Menzel
2025-09-15 10:00 ` Przemek Kitszel
2025-09-15 6:30 ` Loktionov, Aleksandr
2025-09-29 12:13 ` Rinitha, SX
2 siblings, 1 reply; 33+ messages in thread
From: Paul Menzel @ 2025-09-12 13:37 UTC (permalink / raw)
To: Przemek Kitszel
Cc: intel-wired-lan, Tony Nguyen, netdev, Simon Horman, Jacob Keller
Dear Przemek,
Thank you for the patch.
Am 12.09.25 um 15:06 schrieb Przemek Kitszel:
> Instead of making assumptions in comments move them into code.
> Be also more precise, RTNL must be locked only when there is
> NAPI, and we have VSIs w/o NAPI that call ice_vsi_clear_napi_queues()
> during rmmod.
>
> Signed-off-by: Przemek Kitszel <przemyslaw.kitszel@intel.com>
> ---
> CC:Larysa Zaremba <larysa.zaremba@intel.com>
That address is not in Cc.
> ---
> drivers/net/ethernet/intel/ice/ice_lib.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
Reviewed-by: Paul Menzel <pmenzel@molgen.mpg.de>
Kind regards,
Paul
^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [Intel-wired-lan] [PATCH iwl-next 0/9] ice: pospone service task disabling
2025-09-12 13:06 [PATCH iwl-next 0/9] ice: pospone service task disabling Przemek Kitszel
` (8 preceding siblings ...)
2025-09-12 13:06 ` [PATCH iwl-next 9/9] ice: remove duplicate call to ice_deinit_hw() on error paths Przemek Kitszel
@ 2025-09-12 13:37 ` Paul Menzel
9 siblings, 0 replies; 33+ messages in thread
From: Paul Menzel @ 2025-09-12 13:37 UTC (permalink / raw)
To: Przemek Kitszel
Cc: intel-wired-lan, Tony Nguyen, netdev, Simon Horman, Jacob Keller
Dear Przemek,
Thank you for the patch. A small nit for the title/summary: Pos*t*pone
Kind regards,
Paul
^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [PATCH iwl-next 2/9] ice: move service task start out of ice_init_pf()
2025-09-12 13:06 ` [PATCH iwl-next 2/9] ice: move service task start out of ice_init_pf() Przemek Kitszel
@ 2025-09-12 23:19 ` Jakub Kicinski
2025-09-15 11:01 ` Przemek Kitszel
2025-09-29 12:17 ` [Intel-wired-lan] " Rinitha, SX
1 sibling, 1 reply; 33+ messages in thread
From: Jakub Kicinski @ 2025-09-12 23:19 UTC (permalink / raw)
To: Przemek Kitszel
Cc: intel-wired-lan, Tony Nguyen, netdev, Michal Schmidt, Petr Oros,
Simon Horman, Jacob Keller
On Fri, 12 Sep 2025 15:06:20 +0200 Przemek Kitszel wrote:
> + timer_setup(&pf->serv_tmr, ice_service_timer, 0);
> + pf->serv_tmr_period = HZ;
> + INIT_WORK(&pf->serv_task, ice_service_task);
> + clear_bit(ICE_SERVICE_SCHED, pf->state);
I should just read the code, but this looks like an open-coded
deferred_work ?
^ permalink raw reply [flat|nested] 33+ messages in thread
* RE: [Intel-wired-lan] [PATCH iwl-next 1/9] ice: enforce RTNL assumption of queue NAPI manipulation
2025-09-12 13:06 ` [PATCH iwl-next 1/9] ice: enforce RTNL assumption of queue NAPI manipulation Przemek Kitszel
2025-09-12 13:37 ` [Intel-wired-lan] " Paul Menzel
@ 2025-09-15 6:30 ` Loktionov, Aleksandr
2025-09-29 12:13 ` Rinitha, SX
2 siblings, 0 replies; 33+ messages in thread
From: Loktionov, Aleksandr @ 2025-09-15 6:30 UTC (permalink / raw)
To: Kitszel, Przemyslaw, intel-wired-lan@lists.osuosl.org,
Nguyen, Anthony L
Cc: netdev@vger.kernel.org, Simon Horman, Kitszel, Przemyslaw,
Keller, Jacob E
> -----Original Message-----
> From: Intel-wired-lan <intel-wired-lan-bounces@osuosl.org> On Behalf
> Of Przemek Kitszel
> Sent: Friday, September 12, 2025 3:06 PM
> To: intel-wired-lan@lists.osuosl.org; Nguyen, Anthony L
> <anthony.l.nguyen@intel.com>
> Cc: netdev@vger.kernel.org; Simon Horman <horms@kernel.org>; Kitszel,
> Przemyslaw <przemyslaw.kitszel@intel.com>; Keller, Jacob E
> <jacob.e.keller@intel.com>
> Subject: [Intel-wired-lan] [PATCH iwl-next 1/9] ice: enforce RTNL
> assumption of queue NAPI manipulation
>
> Instead of making assumptions in comments move them into code.
> Be also more precise, RTNL must be locked only when there is NAPI, and
> we have VSIs w/o NAPI that call ice_vsi_clear_napi_queues() during
> rmmod.
>
> Signed-off-by: Przemek Kitszel <przemyslaw.kitszel@intel.com>
> ---
> CC:Larysa Zaremba <larysa.zaremba@intel.com>
> ---
> drivers/net/ethernet/intel/ice/ice_lib.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/net/ethernet/intel/ice/ice_lib.c
> b/drivers/net/ethernet/intel/ice/ice_lib.c
> index a439b5a61a56..3f1b2158be59 100644
> --- a/drivers/net/ethernet/intel/ice/ice_lib.c
> +++ b/drivers/net/ethernet/intel/ice/ice_lib.c
> @@ -2769,16 +2769,16 @@ void ice_dis_vsi(struct ice_vsi *vsi, bool
> locked)
> * @vsi: VSI pointer
> *
> * Associate queue[s] with napi for all vectors.
> - * The caller must hold rtnl_lock.
> */
> void ice_vsi_set_napi_queues(struct ice_vsi *vsi) {
> struct net_device *netdev = vsi->netdev;
> int q_idx, v_idx;
>
> if (!netdev)
> return;
>
> + ASSERT_RTNL();
> ice_for_each_rxq(vsi, q_idx)
> netif_queue_set_napi(netdev, q_idx,
> NETDEV_QUEUE_TYPE_RX,
> &vsi->rx_rings[q_idx]->q_vector-
> >napi);
> @@ -2799,16 +2799,16 @@ void ice_vsi_set_napi_queues(struct ice_vsi
> *vsi)
> * @vsi: VSI pointer
> *
> * Clear the association between all VSI queues queue[s] and napi.
> - * The caller must hold rtnl_lock.
> */
> void ice_vsi_clear_napi_queues(struct ice_vsi *vsi) {
> struct net_device *netdev = vsi->netdev;
> int q_idx, v_idx;
>
> if (!netdev)
> return;
>
> + ASSERT_RTNL();
> /* Clear the NAPI's interrupt number */
> ice_for_each_q_vector(vsi, v_idx) {
> struct ice_q_vector *q_vector = vsi->q_vectors[v_idx];
> --
> 2.39.3
Reviewed-by: Aleksandr Loktionov <aleksandr.loktionov@intel.com>
^ permalink raw reply [flat|nested] 33+ messages in thread
* RE: [Intel-wired-lan] [PATCH iwl-next 3/9] ice: move ice_init_interrupt_scheme() prior ice_init_pf()
2025-09-12 13:06 ` [PATCH iwl-next 3/9] ice: move ice_init_interrupt_scheme() prior ice_init_pf() Przemek Kitszel
@ 2025-09-15 6:31 ` Loktionov, Aleksandr
2025-09-29 12:25 ` Rinitha, SX
1 sibling, 0 replies; 33+ messages in thread
From: Loktionov, Aleksandr @ 2025-09-15 6:31 UTC (permalink / raw)
To: Kitszel, Przemyslaw, intel-wired-lan@lists.osuosl.org,
Nguyen, Anthony L
Cc: netdev@vger.kernel.org, Simon Horman, Kitszel, Przemyslaw,
Keller, Jacob E, Jakub Kicinski
> -----Original Message-----
> From: Intel-wired-lan <intel-wired-lan-bounces@osuosl.org> On Behalf
> Of Przemek Kitszel
> Sent: Friday, September 12, 2025 3:06 PM
> To: intel-wired-lan@lists.osuosl.org; Nguyen, Anthony L
> <anthony.l.nguyen@intel.com>
> Cc: netdev@vger.kernel.org; Simon Horman <horms@kernel.org>; Kitszel,
> Przemyslaw <przemyslaw.kitszel@intel.com>; Keller, Jacob E
> <jacob.e.keller@intel.com>; Jakub Kicinski <kuba@kernel.org>
> Subject: [Intel-wired-lan] [PATCH iwl-next 3/9] ice: move
> ice_init_interrupt_scheme() prior ice_init_pf()
>
> Move ice_init_interrupt_scheme() prior ice_init_pf().
> To enable the move ice_set_pf_caps() was moved out from ice_init_pf()
> to the caller (ice_init_dev()), and placed prior to the irq scheme
> init.
>
> The move makes deinit order of ice_deinit_dev() and failure-path of
> ice_init_pf() match (at least in terms of not calling
> ice_clear_interrupt_scheme() and ice_deinit_pf() in opposite ways).
>
> The new order aligns with findings made by Jakub Buchocki in the
> commit 24b454bc354a ("ice: Fix ice module unload").
>
> Signed-off-by: Przemek Kitszel <przemyslaw.kitszel@intel.com>
Reviewed-by: Aleksandr Loktionov <aleksandr.loktionov@intel.com>
...
^ permalink raw reply [flat|nested] 33+ messages in thread
* RE: [Intel-wired-lan] [PATCH iwl-next 4/9] ice: ice_init_pf: destroy mutexes and xarrays on memory alloc failure
2025-09-12 13:06 ` [PATCH iwl-next 4/9] ice: ice_init_pf: destroy mutexes and xarrays on memory alloc failure Przemek Kitszel
@ 2025-09-15 6:32 ` Loktionov, Aleksandr
2025-09-29 12:26 ` Rinitha, SX
1 sibling, 0 replies; 33+ messages in thread
From: Loktionov, Aleksandr @ 2025-09-15 6:32 UTC (permalink / raw)
To: Kitszel, Przemyslaw, intel-wired-lan@lists.osuosl.org,
Nguyen, Anthony L
Cc: netdev@vger.kernel.org, Simon Horman, Kitszel, Przemyslaw,
Keller, Jacob E
> -----Original Message-----
> From: Intel-wired-lan <intel-wired-lan-bounces@osuosl.org> On Behalf
> Of Przemek Kitszel
> Sent: Friday, September 12, 2025 3:06 PM
> To: intel-wired-lan@lists.osuosl.org; Nguyen, Anthony L
> <anthony.l.nguyen@intel.com>
> Cc: netdev@vger.kernel.org; Simon Horman <horms@kernel.org>; Kitszel,
> Przemyslaw <przemyslaw.kitszel@intel.com>; Keller, Jacob E
> <jacob.e.keller@intel.com>
> Subject: [Intel-wired-lan] [PATCH iwl-next 4/9] ice: ice_init_pf:
> destroy mutexes and xarrays on memory alloc failure
>
> Unroll actions of ice_init_pf() when it fails.
> ice_deinit_pf() happens to be perfect to call here.
>
> Signed-off-by: Przemek Kitszel <przemyslaw.kitszel@intel.com>
> ---
> drivers/net/ethernet/intel/ice/ice_main.c | 21 +++++++++++----------
> 1 file changed, 11 insertions(+), 10 deletions(-)
>
...
> /**
> --
> 2.39.3
Reviewed-by: Aleksandr Loktionov <aleksandr.loktionov@intel.com>
^ permalink raw reply [flat|nested] 33+ messages in thread
* RE: [Intel-wired-lan] [PATCH iwl-next 5/9] ice: move udp_tunnel_nic and misc IRQ setup into ice_init_pf()
2025-09-12 13:06 ` [PATCH iwl-next 5/9] ice: move udp_tunnel_nic and misc IRQ setup into ice_init_pf() Przemek Kitszel
@ 2025-09-15 6:33 ` Loktionov, Aleksandr
2025-09-29 12:26 ` Rinitha, SX
1 sibling, 0 replies; 33+ messages in thread
From: Loktionov, Aleksandr @ 2025-09-15 6:33 UTC (permalink / raw)
To: Kitszel, Przemyslaw, intel-wired-lan@lists.osuosl.org,
Nguyen, Anthony L
Cc: netdev@vger.kernel.org, Simon Horman, Kitszel, Przemyslaw,
Keller, Jacob E
> -----Original Message-----
> From: Intel-wired-lan <intel-wired-lan-bounces@osuosl.org> On Behalf
> Of Przemek Kitszel
> Sent: Friday, September 12, 2025 3:06 PM
> To: intel-wired-lan@lists.osuosl.org; Nguyen, Anthony L
> <anthony.l.nguyen@intel.com>
> Cc: netdev@vger.kernel.org; Simon Horman <horms@kernel.org>; Kitszel,
> Przemyslaw <przemyslaw.kitszel@intel.com>; Keller, Jacob E
> <jacob.e.keller@intel.com>
> Subject: [Intel-wired-lan] [PATCH iwl-next 5/9] ice: move
> udp_tunnel_nic and misc IRQ setup into ice_init_pf()
>
> Move udp_tunnel_nic setup and ice_req_irq_msix_misc() call into
> ice_init_pf(), remove some redundancy in the former while moving.
>
> Move ice_free_irq_msix_misc() call into ice_deinit_pf(), to mimic the
> above in terms of needed cleanup. Guard it via emptiness check, to
> keep the allowance of half-initialized pf being cleaned up.
>
> Signed-off-by: Przemek Kitszel <przemyslaw.kitszel@intel.com>
> ---
> drivers/net/ethernet/intel/ice/ice_main.c | 58 +++++++++++-----------
> -
> 1 file changed, 28 insertions(+), 30 deletions(-)
...
> --
> 2.39.3
Reviewed-by: Aleksandr Loktionov <aleksandr.loktionov@intel.com>
^ permalink raw reply [flat|nested] 33+ messages in thread
* RE: [Intel-wired-lan] [PATCH iwl-next 6/9] ice: move ice_init_pf() out of ice_init_dev()
2025-09-12 13:06 ` [PATCH iwl-next 6/9] ice: move ice_init_pf() out of ice_init_dev() Przemek Kitszel
@ 2025-09-15 6:35 ` Loktionov, Aleksandr
2025-09-29 12:31 ` Rinitha, SX
1 sibling, 0 replies; 33+ messages in thread
From: Loktionov, Aleksandr @ 2025-09-15 6:35 UTC (permalink / raw)
To: Kitszel, Przemyslaw, intel-wired-lan@lists.osuosl.org,
Nguyen, Anthony L
Cc: netdev@vger.kernel.org, Simon Horman, Kitszel, Przemyslaw,
Keller, Jacob E
> -----Original Message-----
> From: Intel-wired-lan <intel-wired-lan-bounces@osuosl.org> On Behalf
> Of Przemek Kitszel
> Sent: Friday, September 12, 2025 3:06 PM
> To: intel-wired-lan@lists.osuosl.org; Nguyen, Anthony L
> <anthony.l.nguyen@intel.com>
> Cc: netdev@vger.kernel.org; Simon Horman <horms@kernel.org>; Kitszel,
> Przemyslaw <przemyslaw.kitszel@intel.com>; Keller, Jacob E
> <jacob.e.keller@intel.com>
> Subject: [Intel-wired-lan] [PATCH iwl-next 6/9] ice: move
> ice_init_pf() out of ice_init_dev()
>
> Move ice_init_pf() out of ice_init_dev().
> Do the same for deinit counterpart.
>
> Signed-off-by: Przemek Kitszel <przemyslaw.kitszel@intel.com>
...
> --
> 2.39.3
Reviewed-by: Aleksandr Loktionov <aleksandr.loktionov@intel.com>
^ permalink raw reply [flat|nested] 33+ messages in thread
* RE: [Intel-wired-lan] [PATCH iwl-next 7/9] ice: extract ice_init_dev() from ice_init()
2025-09-12 13:06 ` [PATCH iwl-next 7/9] ice: extract ice_init_dev() from ice_init() Przemek Kitszel
@ 2025-09-15 6:36 ` Loktionov, Aleksandr
2025-09-29 12:31 ` Rinitha, SX
1 sibling, 0 replies; 33+ messages in thread
From: Loktionov, Aleksandr @ 2025-09-15 6:36 UTC (permalink / raw)
To: Kitszel, Przemyslaw, intel-wired-lan@lists.osuosl.org,
Nguyen, Anthony L
Cc: netdev@vger.kernel.org, Simon Horman, Kitszel, Przemyslaw,
Keller, Jacob E
> -----Original Message-----
> From: Intel-wired-lan <intel-wired-lan-bounces@osuosl.org> On Behalf
> Of Przemek Kitszel
> Sent: Friday, September 12, 2025 3:06 PM
> To: intel-wired-lan@lists.osuosl.org; Nguyen, Anthony L
> <anthony.l.nguyen@intel.com>
> Cc: netdev@vger.kernel.org; Simon Horman <horms@kernel.org>; Kitszel,
> Przemyslaw <przemyslaw.kitszel@intel.com>; Keller, Jacob E
> <jacob.e.keller@intel.com>
> Subject: [Intel-wired-lan] [PATCH iwl-next 7/9] ice: extract
> ice_init_dev() from ice_init()
>
> Extract ice_init_dev() from ice_init(), to allow service task and IRQ
> scheme teardown to be put after clearing SW constructs in the
> subsequent commit.
>
> Signed-off-by: Przemek Kitszel <przemyslaw.kitszel@intel.com>
> ---
...
> --
> 2.39.3
Reviewed-by: Aleksandr Loktionov <aleksandr.loktionov@intel.com>
^ permalink raw reply [flat|nested] 33+ messages in thread
* RE: [Intel-wired-lan] [PATCH iwl-next 8/9] ice: move ice_deinit_dev() to the end of deinit paths
2025-09-12 13:06 ` [PATCH iwl-next 8/9] ice: move ice_deinit_dev() to the end of deinit paths Przemek Kitszel
@ 2025-09-15 6:36 ` Loktionov, Aleksandr
2025-09-29 12:31 ` Rinitha, SX
1 sibling, 0 replies; 33+ messages in thread
From: Loktionov, Aleksandr @ 2025-09-15 6:36 UTC (permalink / raw)
To: Kitszel, Przemyslaw, intel-wired-lan@lists.osuosl.org,
Nguyen, Anthony L
Cc: netdev@vger.kernel.org, Simon Horman, Kitszel, Przemyslaw,
Keller, Jacob E
> -----Original Message-----
> From: Intel-wired-lan <intel-wired-lan-bounces@osuosl.org> On Behalf
> Of Przemek Kitszel
> Sent: Friday, September 12, 2025 3:06 PM
> To: intel-wired-lan@lists.osuosl.org; Nguyen, Anthony L
> <anthony.l.nguyen@intel.com>
> Cc: netdev@vger.kernel.org; Simon Horman <horms@kernel.org>; Kitszel,
> Przemyslaw <przemyslaw.kitszel@intel.com>; Keller, Jacob E
> <jacob.e.keller@intel.com>
> Subject: [Intel-wired-lan] [PATCH iwl-next 8/9] ice: move
> ice_deinit_dev() to the end of deinit paths
>
> ice_deinit_dev() takes care of turning off adminq processing, which is
> much needed during driver teardown (remove, reset, error path). Move
> it to the very end where applicable.
> For example, ice_deinit_hw() called after adminq deinit slows rmmod on
> my two-card setup by about 60 seconds.
>
> ice_init_dev() and ice_deinit_dev() scopes were reduced by previous
> commits of the series, with a final touch of extracting
> ice_init_dev_hw() out now (there is no deinit counterpart).
>
> Note that removed ice_service_task_stop() call from ice_remove() is
> placed in the ice_deinit_dev() (and stopping twice makes no sense).
>
> Signed-off-by: Przemek Kitszel <przemyslaw.kitszel@intel.com>
> ---
...
> /**
> --
> 2.39.3
Reviewed-by: Aleksandr Loktionov <aleksandr.loktionov@intel.com>
^ permalink raw reply [flat|nested] 33+ messages in thread
* RE: [Intel-wired-lan] [PATCH iwl-next 9/9] ice: remove duplicate call to ice_deinit_hw() on error paths
2025-09-12 13:06 ` [PATCH iwl-next 9/9] ice: remove duplicate call to ice_deinit_hw() on error paths Przemek Kitszel
@ 2025-09-15 6:37 ` Loktionov, Aleksandr
2025-09-29 12:32 ` Rinitha, SX
1 sibling, 0 replies; 33+ messages in thread
From: Loktionov, Aleksandr @ 2025-09-15 6:37 UTC (permalink / raw)
To: Kitszel, Przemyslaw, intel-wired-lan@lists.osuosl.org,
Nguyen, Anthony L
Cc: netdev@vger.kernel.org, Simon Horman, Kitszel, Przemyslaw,
Keller, Jacob E
> -----Original Message-----
> From: Intel-wired-lan <intel-wired-lan-bounces@osuosl.org> On Behalf
> Of Przemek Kitszel
> Sent: Friday, September 12, 2025 3:06 PM
> To: intel-wired-lan@lists.osuosl.org; Nguyen, Anthony L
> <anthony.l.nguyen@intel.com>
> Cc: netdev@vger.kernel.org; Simon Horman <horms@kernel.org>; Kitszel,
> Przemyslaw <przemyslaw.kitszel@intel.com>; Keller, Jacob E
> <jacob.e.keller@intel.com>
> Subject: [Intel-wired-lan] [PATCH iwl-next 9/9] ice: remove duplicate
> call to ice_deinit_hw() on error paths
>
> Current unwinding code on error paths of ice_devlink_reinit_up() and
> ice_probe() have manual call to ice_deinit_hw() (which is good, as
> there is also manual call to ice_hw_init() there), which is then
> duplicated (and was prior current series) in ice_deinit_dev().
>
> Fix the above by removing ice_deinit_hw() from ice_deinit_dev().
> Add a (now missing) call in ice_remove().
>
> Reported-by: Jacob Keller <jacob.e.keller@intel.com>
> Link: https://patchwork.ozlabs.org/project/intel-wired-
> lan/patch/20250717-jk-ddp-safe-mode-issue-v1-1-e113b2baed79@intel.com
> Fixes: 4d3f59bfa2cd ("ice: split ice_init_hw() out from
> ice_init_dev()")
> Signed-off-by: Przemek Kitszel <przemyslaw.kitszel@intel.com>
> ---
> This series obsoletes patch by Jake Link:ed above; already removed
> from our dev-queue
> ---
> drivers/net/ethernet/intel/ice/ice_main.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/net/ethernet/intel/ice/ice_main.c
> b/drivers/net/ethernet/intel/ice/ice_main.c
> index c169134beb04..6b197d44f56d 100644
> --- a/drivers/net/ethernet/intel/ice/ice_main.c
> +++ b/drivers/net/ethernet/intel/ice/ice_main.c
> @@ -4815,7 +4815,6 @@ int ice_init_dev(struct ice_pf *pf)
>
> void ice_deinit_dev(struct ice_pf *pf)
> {
> - ice_deinit_hw(&pf->hw);
> ice_service_task_stop(pf);
>
> /* Service task is already stopped, so call reset directly. */
> @@ -5497,6 +5496,7 @@ static void ice_remove(struct pci_dev *pdev)
> ice_set_wake(pf);
>
> ice_adapter_put(pdev);
> + ice_deinit_hw(&pf->hw);
>
> ice_deinit_dev(pf);
> ice_aq_cancel_waiting_tasks(pf);
> --
> 2.39.3
Reviewed-by: Aleksandr Loktionov <aleksandr.loktionov@intel.com>
^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [Intel-wired-lan] [PATCH iwl-next 1/9] ice: enforce RTNL assumption of queue NAPI manipulation
2025-09-12 13:37 ` [Intel-wired-lan] " Paul Menzel
@ 2025-09-15 10:00 ` Przemek Kitszel
0 siblings, 0 replies; 33+ messages in thread
From: Przemek Kitszel @ 2025-09-15 10:00 UTC (permalink / raw)
To: Paul Menzel
Cc: intel-wired-lan, Tony Nguyen, netdev, Simon Horman, Jacob Keller,
Larysa Zaremba
On 9/12/25 15:37, Paul Menzel wrote:
> Dear Przemek,
>
>
> Thank you for the patch.
>
> Am 12.09.25 um 15:06 schrieb Przemek Kitszel:
>> Instead of making assumptions in comments move them into code.
>> Be also more precise, RTNL must be locked only when there is
>> NAPI, and we have VSIs w/o NAPI that call ice_vsi_clear_napi_queues()
>> during rmmod.
>>
>> Signed-off-by: Przemek Kitszel <przemyslaw.kitszel@intel.com>
>> ---
>> CC:Larysa Zaremba <larysa.zaremba@intel.com>
>
> That address is not in Cc.
meh, I guess it was thanks to missing space after a colon
Anyway, I have talked with Larysa about this in priv, no objections
reported then ;)
>
>> ---
>> drivers/net/ethernet/intel/ice/ice_lib.c | 4 ++--
>> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> Reviewed-by: Paul Menzel <pmenzel@molgen.mpg.de>
Thank you
>
>
> Kind regards,
>
> Paul
^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [PATCH iwl-next 2/9] ice: move service task start out of ice_init_pf()
2025-09-12 23:19 ` Jakub Kicinski
@ 2025-09-15 11:01 ` Przemek Kitszel
2025-09-15 15:19 ` Jakub Kicinski
0 siblings, 1 reply; 33+ messages in thread
From: Przemek Kitszel @ 2025-09-15 11:01 UTC (permalink / raw)
To: Jakub Kicinski
Cc: intel-wired-lan, Tony Nguyen, netdev, Michal Schmidt, Petr Oros,
Simon Horman, Jacob Keller
On 9/13/25 01:19, Jakub Kicinski wrote:
> On Fri, 12 Sep 2025 15:06:20 +0200 Przemek Kitszel wrote:
>> + timer_setup(&pf->serv_tmr, ice_service_timer, 0);
>> + pf->serv_tmr_period = HZ;
>> + INIT_WORK(&pf->serv_task, ice_service_task);
>> + clear_bit(ICE_SERVICE_SCHED, pf->state);
>
> I should just read the code, but this looks like an open-coded
> deferred_work ?
I wanted to put some joke about our driver, but it is not funny :F
ice-service-task is scheduled both by the timer and work_queue (ice_wq),
there is more flags that I could count around the scheduling, and it is
a pain to stop/reset the thing - I will definitively try to simplify
the thing (esp. given I have a bug with driver reset on me)
but for now, the cited thing is just a little chunk that I have moved
from one function to another (and the whole series is not about a race)
^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [PATCH iwl-next 2/9] ice: move service task start out of ice_init_pf()
2025-09-15 11:01 ` Przemek Kitszel
@ 2025-09-15 15:19 ` Jakub Kicinski
0 siblings, 0 replies; 33+ messages in thread
From: Jakub Kicinski @ 2025-09-15 15:19 UTC (permalink / raw)
To: Przemek Kitszel
Cc: intel-wired-lan, Tony Nguyen, netdev, Michal Schmidt, Petr Oros,
Simon Horman, Jacob Keller
On Mon, 15 Sep 2025 13:01:47 +0200 Przemek Kitszel wrote:
> On 9/13/25 01:19, Jakub Kicinski wrote:
> > On Fri, 12 Sep 2025 15:06:20 +0200 Przemek Kitszel wrote:
> >> + timer_setup(&pf->serv_tmr, ice_service_timer, 0);
> >> + pf->serv_tmr_period = HZ;
> >> + INIT_WORK(&pf->serv_task, ice_service_task);
> >> + clear_bit(ICE_SERVICE_SCHED, pf->state);
> >
> > I should just read the code, but this looks like an open-coded
> > deferred_work ?
>
> I wanted to put some joke about our driver, but it is not funny :F
>
> ice-service-task is scheduled both by the timer and work_queue (ice_wq),
> there is more flags that I could count around the scheduling, and it is
> a pain to stop/reset the thing - I will definitively try to simplify
> the thing (esp. given I have a bug with driver reset on me)
>
> but for now, the cited thing is just a little chunk that I have moved
> from one function to another (and the whole series is not about a race)
FWIW a lot of races that used to exist around work scheduling are now
trivially resolved by disabling the work. But yeah, not a blocker here
obviously..
^ permalink raw reply [flat|nested] 33+ messages in thread
* RE: [Intel-wired-lan] [PATCH iwl-next 1/9] ice: enforce RTNL assumption of queue NAPI manipulation
2025-09-12 13:06 ` [PATCH iwl-next 1/9] ice: enforce RTNL assumption of queue NAPI manipulation Przemek Kitszel
2025-09-12 13:37 ` [Intel-wired-lan] " Paul Menzel
2025-09-15 6:30 ` Loktionov, Aleksandr
@ 2025-09-29 12:13 ` Rinitha, SX
2 siblings, 0 replies; 33+ messages in thread
From: Rinitha, SX @ 2025-09-29 12:13 UTC (permalink / raw)
To: Kitszel, Przemyslaw, intel-wired-lan@lists.osuosl.org,
Nguyen, Anthony L
Cc: netdev@vger.kernel.org, Simon Horman, Kitszel, Przemyslaw,
Keller, Jacob E
> -----Original Message-----
> From: Intel-wired-lan <intel-wired-lan-bounces@osuosl.org> On Behalf Of Przemek Kitszel
> Sent: 12 September 2025 18:36
> To: intel-wired-lan@lists.osuosl.org; Nguyen, Anthony L <anthony.l.nguyen@intel.com>
> Cc: netdev@vger.kernel.org; Simon Horman <horms@kernel.org>; Kitszel, Przemyslaw <przemyslaw.kitszel@intel.com>; Keller, Jacob E <jacob.e.keller@intel.com>
> Subject: [Intel-wired-lan] [PATCH iwl-next 1/9] ice: enforce RTNL assumption of queue NAPI manipulation
>
> Instead of making assumptions in comments move them into code.
> Be also more precise, RTNL must be locked only when there is NAPI, and we have VSIs w/o NAPI that call ice_vsi_clear_napi_queues() during rmmod.
>
> Signed-off-by: Przemek Kitszel <przemyslaw.kitszel@intel.com>
> ---
> CC:Larysa Zaremba <larysa.zaremba@intel.com>
> ---
> drivers/net/ethernet/intel/ice/ice_lib.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
Tested-by: Rinitha S <sx.rinitha@intel.com> (A Contingent worker at Intel)
^ permalink raw reply [flat|nested] 33+ messages in thread
* RE: [Intel-wired-lan] [PATCH iwl-next 2/9] ice: move service task start out of ice_init_pf()
2025-09-12 13:06 ` [PATCH iwl-next 2/9] ice: move service task start out of ice_init_pf() Przemek Kitszel
2025-09-12 23:19 ` Jakub Kicinski
@ 2025-09-29 12:17 ` Rinitha, SX
1 sibling, 0 replies; 33+ messages in thread
From: Rinitha, SX @ 2025-09-29 12:17 UTC (permalink / raw)
To: Kitszel, Przemyslaw, intel-wired-lan@lists.osuosl.org,
Nguyen, Anthony L
Cc: netdev@vger.kernel.org, Simon Horman, Kitszel, Przemyslaw,
Keller, Jacob E
> -----Original Message-----
> From: Intel-wired-lan <intel-wired-lan-bounces@osuosl.org> On Behalf Of Przemek Kitszel
> Sent: 12 September 2025 18:36
> To: intel-wired-lan@lists.osuosl.org; Nguyen, Anthony L <anthony.l.nguyen@intel.com>
> Cc: netdev@vger.kernel.org; Simon Horman <horms@kernel.org>; Kitszel, Przemyslaw <przemyslaw.kitszel@intel.com>; Keller, Jacob E <jacob.e.keller@intel.com>
> Subject: [Intel-wired-lan] [PATCH iwl-next 2/9] ice: move service task start out of ice_init_pf()
>
> Move service task start out of ice_init_pf(). Do analogous with deinit.
> Service task is needed up to the very end of driver removal, later commit of the series will move it later on execution timeline.
>
> Signed-off-by: Przemek Kitszel <przemyslaw.kitszel@intel.com>
> ---
> drivers/net/ethernet/intel/ice/ice.h | 1 +
> drivers/net/ethernet/intel/ice/ice_main.c | 18 +++++++++++-------
> 2 files changed, 12 insertions(+), 7 deletions(-)
>
Tested-by: Rinitha S <sx.rinitha@intel.com> (A Contingent worker at Intel)
^ permalink raw reply [flat|nested] 33+ messages in thread
* RE: [Intel-wired-lan] [PATCH iwl-next 3/9] ice: move ice_init_interrupt_scheme() prior ice_init_pf()
2025-09-12 13:06 ` [PATCH iwl-next 3/9] ice: move ice_init_interrupt_scheme() prior ice_init_pf() Przemek Kitszel
2025-09-15 6:31 ` [Intel-wired-lan] " Loktionov, Aleksandr
@ 2025-09-29 12:25 ` Rinitha, SX
1 sibling, 0 replies; 33+ messages in thread
From: Rinitha, SX @ 2025-09-29 12:25 UTC (permalink / raw)
To: Kitszel, Przemyslaw, intel-wired-lan@lists.osuosl.org,
Nguyen, Anthony L
Cc: netdev@vger.kernel.org, Simon Horman, Kitszel, Przemyslaw,
Keller, Jacob E, Jakub Kicinski
> -----Original Message-----
> From: Intel-wired-lan <intel-wired-lan-bounces@osuosl.org> On Behalf Of Przemek Kitszel
> Sent: 12 September 2025 18:36
> To: intel-wired-lan@lists.osuosl.org; Nguyen, Anthony L <anthony.l.nguyen@intel.com>
> Cc: netdev@vger.kernel.org; Simon Horman <horms@kernel.org>; Kitszel, Przemyslaw <przemyslaw.kitszel@intel.com>; Keller, Jacob E <jacob.e.keller@intel.com>; Jakub Kicinski <kuba@kernel.org>
> Subject: [Intel-wired-lan] [PATCH iwl-next 3/9] ice: move ice_init_interrupt_scheme() prior ice_init_pf()
>
> Move ice_init_interrupt_scheme() prior ice_init_pf().
> To enable the move ice_set_pf_caps() was moved out from ice_init_pf() to the caller (ice_init_dev()), and placed prior to the irq scheme init.
>
> The move makes deinit order of ice_deinit_dev() and failure-path of
> ice_init_pf() match (at least in terms of not calling
> ice_clear_interrupt_scheme() and ice_deinit_pf() in opposite ways).
>
> The new order aligns with findings made by Jakub Buchocki in the commit 24b454bc354a ("ice: Fix ice module unload").
>
> Signed-off-by: Przemek Kitszel <przemyslaw.kitszel@intel.com>
> ---
> CC: Jakub Kicinski <kuba@kernel.org>
> ---
> drivers/net/ethernet/intel/ice/ice_main.c | 25 ++++++++++-------------
> 1 file changed, 11 insertions(+), 14 deletions(-)
>
Tested-by: Rinitha S <sx.rinitha@intel.com> (A Contingent worker at Intel)
^ permalink raw reply [flat|nested] 33+ messages in thread
* RE: [Intel-wired-lan] [PATCH iwl-next 4/9] ice: ice_init_pf: destroy mutexes and xarrays on memory alloc failure
2025-09-12 13:06 ` [PATCH iwl-next 4/9] ice: ice_init_pf: destroy mutexes and xarrays on memory alloc failure Przemek Kitszel
2025-09-15 6:32 ` [Intel-wired-lan] " Loktionov, Aleksandr
@ 2025-09-29 12:26 ` Rinitha, SX
1 sibling, 0 replies; 33+ messages in thread
From: Rinitha, SX @ 2025-09-29 12:26 UTC (permalink / raw)
To: Kitszel, Przemyslaw, intel-wired-lan@lists.osuosl.org,
Nguyen, Anthony L
Cc: netdev@vger.kernel.org, Simon Horman, Kitszel, Przemyslaw,
Keller, Jacob E
> -----Original Message-----
> From: Intel-wired-lan <intel-wired-lan-bounces@osuosl.org> On Behalf Of Przemek Kitszel
> Sent: 12 September 2025 18:36
> To: intel-wired-lan@lists.osuosl.org; Nguyen, Anthony L <anthony.l.nguyen@intel.com>
> Cc: netdev@vger.kernel.org; Simon Horman <horms@kernel.org>; Kitszel, Przemyslaw <przemyslaw.kitszel@intel.com>; Keller, Jacob E <jacob.e.keller@intel.com>
> Subject: [Intel-wired-lan] [PATCH iwl-next 4/9] ice: ice_init_pf: destroy mutexes and xarrays on memory alloc failure
>
> Unroll actions of ice_init_pf() when it fails.
> ice_deinit_pf() happens to be perfect to call here.
>
> Signed-off-by: Przemek Kitszel <przemyslaw.kitszel@intel.com>
> ---
> drivers/net/ethernet/intel/ice/ice_main.c | 21 +++++++++++----------
> 1 file changed, 11 insertions(+), 10 deletions(-)
>
Tested-by: Rinitha S <sx.rinitha@intel.com> (A Contingent worker at Intel)
^ permalink raw reply [flat|nested] 33+ messages in thread
* RE: [Intel-wired-lan] [PATCH iwl-next 5/9] ice: move udp_tunnel_nic and misc IRQ setup into ice_init_pf()
2025-09-12 13:06 ` [PATCH iwl-next 5/9] ice: move udp_tunnel_nic and misc IRQ setup into ice_init_pf() Przemek Kitszel
2025-09-15 6:33 ` [Intel-wired-lan] " Loktionov, Aleksandr
@ 2025-09-29 12:26 ` Rinitha, SX
1 sibling, 0 replies; 33+ messages in thread
From: Rinitha, SX @ 2025-09-29 12:26 UTC (permalink / raw)
To: Kitszel, Przemyslaw, intel-wired-lan@lists.osuosl.org,
Nguyen, Anthony L
Cc: netdev@vger.kernel.org, Simon Horman, Kitszel, Przemyslaw,
Keller, Jacob E
> -----Original Message-----
> From: Intel-wired-lan <intel-wired-lan-bounces@osuosl.org> On Behalf Of Przemek Kitszel
> Sent: 12 September 2025 18:36
> To: intel-wired-lan@lists.osuosl.org; Nguyen, Anthony L <anthony.l.nguyen@intel.com>
> Cc: netdev@vger.kernel.org; Simon Horman <horms@kernel.org>; Kitszel, Przemyslaw <przemyslaw.kitszel@intel.com>; Keller, Jacob E <jacob.e.keller@intel.com>
> Subject: [Intel-wired-lan] [PATCH iwl-next 5/9] ice: move udp_tunnel_nic and misc IRQ setup into ice_init_pf()
>
> Move udp_tunnel_nic setup and ice_req_irq_msix_misc() call into ice_init_pf(), remove some redundancy in the former while moving.
>
> Move ice_free_irq_msix_misc() call into ice_deinit_pf(), to mimic the above in terms of needed cleanup. Guard it via emptiness check, to keep the allowance of half-initialized pf being cleaned up.
>
> Signed-off-by: Przemek Kitszel <przemyslaw.kitszel@intel.com>
> ---
> drivers/net/ethernet/intel/ice/ice_main.c | 58 +++++++++++------------
> 1 file changed, 28 insertions(+), 30 deletions(-)
>
Tested-by: Rinitha S <sx.rinitha@intel.com> (A Contingent worker at Intel)
^ permalink raw reply [flat|nested] 33+ messages in thread
* RE: [Intel-wired-lan] [PATCH iwl-next 6/9] ice: move ice_init_pf() out of ice_init_dev()
2025-09-12 13:06 ` [PATCH iwl-next 6/9] ice: move ice_init_pf() out of ice_init_dev() Przemek Kitszel
2025-09-15 6:35 ` [Intel-wired-lan] " Loktionov, Aleksandr
@ 2025-09-29 12:31 ` Rinitha, SX
1 sibling, 0 replies; 33+ messages in thread
From: Rinitha, SX @ 2025-09-29 12:31 UTC (permalink / raw)
To: Kitszel, Przemyslaw, intel-wired-lan@lists.osuosl.org,
Nguyen, Anthony L
Cc: netdev@vger.kernel.org, Simon Horman, Kitszel, Przemyslaw,
Keller, Jacob E
> -----Original Message-----
> From: Intel-wired-lan <intel-wired-lan-bounces@osuosl.org> On Behalf Of Przemek Kitszel
> Sent: 12 September 2025 18:36
> To: intel-wired-lan@lists.osuosl.org; Nguyen, Anthony L <anthony.l.nguyen@intel.com>
> Cc: netdev@vger.kernel.org; Simon Horman <horms@kernel.org>; Kitszel, Przemyslaw <przemyslaw.kitszel@intel.com>; Keller, Jacob E <jacob.e.keller@intel.com>
> Subject: [Intel-wired-lan] [PATCH iwl-next 6/9] ice: move ice_init_pf() out of ice_init_dev()
>
> Move ice_init_pf() out of ice_init_dev().
> Do the same for deinit counterpart.
>
> Signed-off-by: Przemek Kitszel <przemyslaw.kitszel@intel.com>
> ---
> drivers/net/ethernet/intel/ice/ice.h | 2 ++
> .../net/ethernet/intel/ice/devlink/devlink.c | 16 ++++++++--
> drivers/net/ethernet/intel/ice/ice_main.c | 32 +++++++++----------
> 3 files changed, 31 insertions(+), 19 deletions(-)
>
Tested-by: Rinitha S <sx.rinitha@intel.com> (A Contingent worker at Intel)
^ permalink raw reply [flat|nested] 33+ messages in thread
* RE: [Intel-wired-lan] [PATCH iwl-next 8/9] ice: move ice_deinit_dev() to the end of deinit paths
2025-09-12 13:06 ` [PATCH iwl-next 8/9] ice: move ice_deinit_dev() to the end of deinit paths Przemek Kitszel
2025-09-15 6:36 ` [Intel-wired-lan] " Loktionov, Aleksandr
@ 2025-09-29 12:31 ` Rinitha, SX
1 sibling, 0 replies; 33+ messages in thread
From: Rinitha, SX @ 2025-09-29 12:31 UTC (permalink / raw)
To: Kitszel, Przemyslaw, intel-wired-lan@lists.osuosl.org,
Nguyen, Anthony L
Cc: netdev@vger.kernel.org, Simon Horman, Kitszel, Przemyslaw,
Keller, Jacob E
> -----Original Message-----
> From: Intel-wired-lan <intel-wired-lan-bounces@osuosl.org> On Behalf Of Przemek Kitszel
> Sent: 12 September 2025 18:36
> To: intel-wired-lan@lists.osuosl.org; Nguyen, Anthony L <anthony.l.nguyen@intel.com>
> Cc: netdev@vger.kernel.org; Simon Horman <horms@kernel.org>; Kitszel, Przemyslaw <przemyslaw.kitszel@intel.com>; Keller, Jacob E <jacob.e.keller@intel.com>
> Subject: [Intel-wired-lan] [PATCH iwl-next 8/9] ice: move ice_deinit_dev() to the end of deinit paths
>
> ice_deinit_dev() takes care of turning off adminq processing, which is much needed during driver teardown (remove, reset, error path). Move it to the very end where applicable.
> For example, ice_deinit_hw() called after adminq deinit slows rmmod on my two-card setup by about 60 seconds.
>
> ice_init_dev() and ice_deinit_dev() scopes were reduced by previous commits of the series, with a final touch of extracting ice_init_dev_hw() out now (there is no deinit counterpart).
>
> Note that removed ice_service_task_stop() call from ice_remove() is placed in the ice_deinit_dev() (and stopping twice makes no sense).
>
> Signed-off-by: Przemek Kitszel <przemyslaw.kitszel@intel.com>
> ---
> drivers/net/ethernet/intel/ice/ice.h | 1 +
> .../net/ethernet/intel/ice/devlink/devlink.c | 5 +++-
> drivers/net/ethernet/intel/ice/ice_common.c | 3 +++
> drivers/net/ethernet/intel/ice/ice_main.c | 23 ++++++++++++-------
> 4 files changed, 23 insertions(+), 9 deletions(-)
>
Tested-by: Rinitha S <sx.rinitha@intel.com> (A Contingent worker at Intel)
^ permalink raw reply [flat|nested] 33+ messages in thread
* RE: [Intel-wired-lan] [PATCH iwl-next 7/9] ice: extract ice_init_dev() from ice_init()
2025-09-12 13:06 ` [PATCH iwl-next 7/9] ice: extract ice_init_dev() from ice_init() Przemek Kitszel
2025-09-15 6:36 ` [Intel-wired-lan] " Loktionov, Aleksandr
@ 2025-09-29 12:31 ` Rinitha, SX
1 sibling, 0 replies; 33+ messages in thread
From: Rinitha, SX @ 2025-09-29 12:31 UTC (permalink / raw)
To: Kitszel, Przemyslaw, intel-wired-lan@lists.osuosl.org,
Nguyen, Anthony L
Cc: netdev@vger.kernel.org, Simon Horman, Kitszel, Przemyslaw,
Keller, Jacob E
> -----Original Message-----
> From: Intel-wired-lan <intel-wired-lan-bounces@osuosl.org> On Behalf Of Przemek Kitszel
> Sent: 12 September 2025 18:36
> To: intel-wired-lan@lists.osuosl.org; Nguyen, Anthony L <anthony.l.nguyen@intel.com>
> Cc: netdev@vger.kernel.org; Simon Horman <horms@kernel.org>; Kitszel, Przemyslaw <przemyslaw.kitszel@intel.com>; Keller, Jacob E <jacob.e.keller@intel.com>
> Subject: [Intel-wired-lan] [PATCH iwl-next 7/9] ice: extract ice_init_dev() from ice_init()
>
> Extract ice_init_dev() from ice_init(), to allow service task and IRQ scheme teardown to be put after clearing SW constructs in the subsequent commit.
>
> Signed-off-by: Przemek Kitszel <przemyslaw.kitszel@intel.com>
> ---
> drivers/net/ethernet/intel/ice/ice_main.c | 18 +++++++++---------
> 1 file changed, 9 insertions(+), 9 deletions(-)
>
Tested-by: Rinitha S <sx.rinitha@intel.com> (A Contingent worker at Intel)
^ permalink raw reply [flat|nested] 33+ messages in thread
* RE: [Intel-wired-lan] [PATCH iwl-next 9/9] ice: remove duplicate call to ice_deinit_hw() on error paths
2025-09-12 13:06 ` [PATCH iwl-next 9/9] ice: remove duplicate call to ice_deinit_hw() on error paths Przemek Kitszel
2025-09-15 6:37 ` [Intel-wired-lan] " Loktionov, Aleksandr
@ 2025-09-29 12:32 ` Rinitha, SX
1 sibling, 0 replies; 33+ messages in thread
From: Rinitha, SX @ 2025-09-29 12:32 UTC (permalink / raw)
To: Kitszel, Przemyslaw, intel-wired-lan@lists.osuosl.org,
Nguyen, Anthony L
Cc: netdev@vger.kernel.org, Simon Horman, Kitszel, Przemyslaw,
Keller, Jacob E
> -----Original Message-----
> From: Intel-wired-lan <intel-wired-lan-bounces@osuosl.org> On Behalf Of Przemek Kitszel
> Sent: 12 September 2025 18:36
> To: intel-wired-lan@lists.osuosl.org; Nguyen, Anthony L <anthony.l.nguyen@intel.com>
> Cc: netdev@vger.kernel.org; Simon Horman <horms@kernel.org>; Kitszel, Przemyslaw <przemyslaw.kitszel@intel.com>; Keller, Jacob E <jacob.e.keller@intel.com>
> Subject: [Intel-wired-lan] [PATCH iwl-next 9/9] ice: remove duplicate call to ice_deinit_hw() on error paths
>
> Current unwinding code on error paths of ice_devlink_reinit_up() and
> ice_probe() have manual call to ice_deinit_hw() (which is good, as there is also manual call to ice_hw_init() there), which is then duplicated (and was prior current series) in ice_deinit_dev().
>
> Fix the above by removing ice_deinit_hw() from ice_deinit_dev().
> Add a (now missing) call in ice_remove().
>
> Reported-by: Jacob Keller <jacob.e.keller@intel.com>
> Link: https://patchwork.ozlabs.org/project/intel-wired-lan/patch/20250717-jk-ddp-safe-mode-issue-v1-1-e113b2baed79@intel.com
> Fixes: 4d3f59bfa2cd ("ice: split ice_init_hw() out from ice_init_dev()")
> Signed-off-by: Przemek Kitszel <przemyslaw.kitszel@intel.com>
> ---
> This series obsoletes patch by Jake Link:ed above; already removed from our dev-queue
> ---
> drivers/net/ethernet/intel/ice/ice_main.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
Tested-by: Rinitha S <sx.rinitha@intel.com> (A Contingent worker at Intel)
^ permalink raw reply [flat|nested] 33+ messages in thread
end of thread, other threads:[~2025-09-29 12:32 UTC | newest]
Thread overview: 33+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-09-12 13:06 [PATCH iwl-next 0/9] ice: pospone service task disabling Przemek Kitszel
2025-09-12 13:06 ` [PATCH iwl-next 1/9] ice: enforce RTNL assumption of queue NAPI manipulation Przemek Kitszel
2025-09-12 13:37 ` [Intel-wired-lan] " Paul Menzel
2025-09-15 10:00 ` Przemek Kitszel
2025-09-15 6:30 ` Loktionov, Aleksandr
2025-09-29 12:13 ` Rinitha, SX
2025-09-12 13:06 ` [PATCH iwl-next 2/9] ice: move service task start out of ice_init_pf() Przemek Kitszel
2025-09-12 23:19 ` Jakub Kicinski
2025-09-15 11:01 ` Przemek Kitszel
2025-09-15 15:19 ` Jakub Kicinski
2025-09-29 12:17 ` [Intel-wired-lan] " Rinitha, SX
2025-09-12 13:06 ` [PATCH iwl-next 3/9] ice: move ice_init_interrupt_scheme() prior ice_init_pf() Przemek Kitszel
2025-09-15 6:31 ` [Intel-wired-lan] " Loktionov, Aleksandr
2025-09-29 12:25 ` Rinitha, SX
2025-09-12 13:06 ` [PATCH iwl-next 4/9] ice: ice_init_pf: destroy mutexes and xarrays on memory alloc failure Przemek Kitszel
2025-09-15 6:32 ` [Intel-wired-lan] " Loktionov, Aleksandr
2025-09-29 12:26 ` Rinitha, SX
2025-09-12 13:06 ` [PATCH iwl-next 5/9] ice: move udp_tunnel_nic and misc IRQ setup into ice_init_pf() Przemek Kitszel
2025-09-15 6:33 ` [Intel-wired-lan] " Loktionov, Aleksandr
2025-09-29 12:26 ` Rinitha, SX
2025-09-12 13:06 ` [PATCH iwl-next 6/9] ice: move ice_init_pf() out of ice_init_dev() Przemek Kitszel
2025-09-15 6:35 ` [Intel-wired-lan] " Loktionov, Aleksandr
2025-09-29 12:31 ` Rinitha, SX
2025-09-12 13:06 ` [PATCH iwl-next 7/9] ice: extract ice_init_dev() from ice_init() Przemek Kitszel
2025-09-15 6:36 ` [Intel-wired-lan] " Loktionov, Aleksandr
2025-09-29 12:31 ` Rinitha, SX
2025-09-12 13:06 ` [PATCH iwl-next 8/9] ice: move ice_deinit_dev() to the end of deinit paths Przemek Kitszel
2025-09-15 6:36 ` [Intel-wired-lan] " Loktionov, Aleksandr
2025-09-29 12:31 ` Rinitha, SX
2025-09-12 13:06 ` [PATCH iwl-next 9/9] ice: remove duplicate call to ice_deinit_hw() on error paths Przemek Kitszel
2025-09-15 6:37 ` [Intel-wired-lan] " Loktionov, Aleksandr
2025-09-29 12:32 ` Rinitha, SX
2025-09-12 13:37 ` [Intel-wired-lan] [PATCH iwl-next 0/9] ice: pospone service task disabling Paul Menzel
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).