> -----Original Message----- > From: Intel-wired-lan <[email protected]> On Behalf Of Jacob > Keller > Sent: 07 July 2026 05:01 > To: Nguyen, Anthony L <[email protected]>; Kitszel, Przemyslaw > <[email protected]> > Cc: [email protected]; [email protected]; Keller, Jacob E > <[email protected]> > Subject: [Intel-wired-lan] [PATCH iwl-net v2] ice: add missing xa_destroy for > sched_node_ids > > Commit 16dfa49406bc ("ice: Introduce new parameters in ice_sched_node") added > a sched_node_ids xarray to the port info structure, but never called > xa_destroy on it. > > Since xarrays can allocate internal memory, this can result in a memory leak > even if every element in the xarray has been removed. > > The xarray is currently embedded in the port_info structure. This appears to > have been done because its use is within functions that take the port_info as > a primary argument. > > However, this complicates managing the lifecycle of the field. The port_info > structure is allocated in ice_init_hw() using devm, and it is not released > until the devm cleanup when the driver is unloaded. > > The ice_init_hw() function is called in many places, including devlink > reload, and possibly during DDP load after updating the Tx scheduler layout. > > Adding a call of xa_destroy to the ice_deinit_hw() causes Sashiko to raise > multiple concerns due to potential ordering issues and possible ways that > port_info could be a dangling reference. > > To handle this, move the sched_node_ids out of port_info and into the hw > structure. All users of the array already have a pointer to hw anyways, and > there is only one sched_node_ids per adapter. While here, remove the overly > verbose comment explaining the nature of the sched_node_ids xarray. > > Add the missing xa_destroy to the cleanup path and to ice_deinit_hw(), > ensuring that we properly release the xarray memory. > > This was caught by Sashiko during development of unrelated code. > > Fixes: 16dfa49406bc ("ice: Introduce new parameters in ice_sched_node") > Signed-off-by: Jacob Keller <[email protected]> > --- > Changes in v2: > - Move sched_node_ids out of port_into into hw. > - Link to v1: > https://patch.msgid.link/[email protected] > --- > drivers/net/ethernet/intel/ice/ice_type.h | 2 +- > drivers/net/ethernet/intel/ice/ice_common.c | 9 ++++++--- > drivers/net/ethernet/intel/ice/ice_sched.c | 4 ++-- > 3 files changed, 9 insertions(+), 6 deletions(-) >
Tested-by: Rinitha S <[email protected]> (A Contingent worker at Intel)
