> -----Original Message----- > From: Intel-wired-lan <[email protected]> On Behalf Of > Przemek Kitszel >Sent: Monday, June 17, 2024 6:54 PM > To: [email protected] > Cc: Jiri Pirko <[email protected]>; Temerkhanov, Sergey > <[email protected]>; [email protected]; Czapnik, Lukasz > <[email protected]>; Drewek, Wojciech <[email protected]>; > Nguyen, Anthony L <[email protected]>; Kitszel, Przemyslaw > <[email protected]>; Keller, Jacob E <[email protected]>; > Jakub Kicinski <[email protected]> > Subject: [Intel-wired-lan] [PATCH iwl-next v1] ice: do not init struct > ice_adapter more times than needed > > Allocate and initialize struct ice_adapter object only once per physical card > instead of once per port. This is not a big deal by now, but we want to > extend this struct more and more in the near future. Our plans include PTP > stuff and a devlink instance representing whole-device/physical card. > > Transactions requiring to be sleep-able (like those doing user (here ice) > memory allocation) must be performed with an additional (on top of xarray) > mutex. Adding it here removes need to xa_lock() manually. > > Since this commit is a reimplementation of ice_adapter_get(), a rather new > scoped_guard() wrapper for locking is used to simplify the logic. > > It's worth to mention that xa_insert() use gives us both slot reservation > and checks if it is already filled, what simplifies code a tiny bit. > > Reviewed-by: Wojciech Drewek <[email protected]> > Signed-off-by: Przemek Kitszel <[email protected]> > --- > drivers/net/ethernet/intel/ice/ice_adapter.c | 60 +++++++++----------- > 1 file changed, 28 insertions(+), 32 deletions(-) >
Tested-by: Pucha Himasekhar Reddy <[email protected]> (A Contingent worker at Intel)
