> -----Original Message----- > From: Intel-wired-lan <intel-wired-lan-boun...@osuosl.org> On Behalf Of > Przemek Kitszel >Sent: Monday, June 17, 2024 6:54 PM > To: intel-wired-...@lists.osuosl.org > Cc: Jiri Pirko <j...@resnulli.us>; Temerkhanov, Sergey > <sergey.temerkha...@intel.com>; net...@vger.kernel.org; Czapnik, Lukasz > <lukasz.czap...@intel.com>; Drewek, Wojciech <wojciech.dre...@intel.com>; > Nguyen, Anthony L <anthony.l.ngu...@intel.com>; Kitszel, Przemyslaw > <przemyslaw.kits...@intel.com>; Keller, Jacob E <jacob.e.kel...@intel.com>; > Jakub Kicinski <k...@kernel.org> > 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 <wojciech.dre...@intel.com> > Signed-off-by: Przemek Kitszel <przemyslaw.kits...@intel.com> > --- > drivers/net/ethernet/intel/ice/ice_adapter.c | 60 +++++++++----------- > 1 file changed, 28 insertions(+), 32 deletions(-) >
Tested-by: Pucha Himasekhar Reddy <himasekharx.reddy.pu...@intel.com> (A Contingent worker at Intel)