> -----Original Message-----
> From: Petr Oros <[email protected]> 
> Sent: Friday, October 2, 2026 6:08 AM
> To: [email protected]
> Cc: Oros, Petr <[email protected]>; Nguyen, Anthony L 
> <[email protected]>; Kitszel, Przemyslaw 
> <[email protected]>; Andrew Lunn <[email protected]>; David S. 
> Miller <[email protected]>; Eric Dumazet <[email protected]>; Jakub 
> Kicinski <[email protected]>; Paolo Abeni <[email protected]>; Lobakin, 
> Aleksander <[email protected]>; Alexei Starovoitov 
> <[email protected]>; Daniel Borkmann <[email protected]>; Jesper Dangaard 
> Brouer <[email protected]>; John Fastabend <[email protected]>; 
> Stanislav Fomichev <[email protected]>; Henry Tieman > 
> <[email protected]>; Anirudh Venkataramanan 
> <[email protected]>; Michal Swiatkowski 
> <[email protected]>; Jesse Brandeburg <[email protected]>; 
> Preethi Banala <[email protected]>; Kiran Patil 
> <[email protected]>; Dan Nowlin <[email protected]>; Stephen Hemminger 
> <[email protected]>; [email protected]; 
> [email protected]; [email protected]
> Subject: [PATCH iwl-net 04/10] ice: restore the default XPS map after a 
> netdev TC change
> 
> ice_cfg_xps_tx_ring() programs the default XPS map only once per ring, 
> guarded by ICE_TX_XPS_INIT_DONE. netdev_reset_tc() and
> netdev_set_num_tc() drop all XPS maps of the device, but the bit is never 
> cleared, so the default map is not programmed again.
> 
> Since commit 122045ca7704 ("ice: config netdev tc before setting queues
> number") ice_vsi_open() calls ice_vsi_cfg_netdev_tc() after the Tx queues 
> have been configured, so the map is wiped right after it was written on every 
> open and stays empty:
> 
>   # cat /sys/class/net/enp4s0f0np0/queues/tx-*/xps_cpus
>   0000
>   0000
>   ...
> 
> A DCB reconfiguration ends the same way through ice_vsi_cfg_tc().
> 
> Clear ICE_TX_XPS_INIT_DONE in ice_vsi_cfg_netdev_tc(), which resets the 
> netdev TC state, and configure the netdev TCs in ice_vsi_open() before the Tx 
> queues so the default map is applied after the reset, not before it.
> 
> i40e fixed the same stale bit in commit 82e0572b2302 ("i40e: Fix not setting 
> default xps_cpus after reset").
> 
> Fixes: 122045ca7704 ("ice: config netdev tc before setting queues number")
> Assisted-by: LLM
> Signed-off-by: Petr Oros <[email protected]>
> ---
>  drivers/net/ethernet/intel/ice/ice_lib.c  | 6 ++++++  
> drivers/net/ethernet/intel/ice/ice_main.c | 6 +++---
>  2 files changed, 9 insertions(+), 3 deletions(-)

Tested-by: Alexander Nowlin <[email protected]>

Reply via email to