> -----Original Message----- > From: Intel-wired-lan <[email protected]> On Behalf Of > Arkadiusz Kubalewski > Sent: Saturday, February 10, 2024 2:55 AM > To: [email protected] > Cc: Loktionov, Aleksandr <[email protected]>; Kitszel, Przemyslaw > <[email protected]>; Kubalewski, Arkadiusz > <[email protected]> > Subject: [Intel-wired-lan] [PATCH iwl-net v2 1/3] ice: fix dpll and dpll_pin > data access on PF reset > > Do not allow to acquire data or alter configuration of dpll and pins > through firmware if PF reset is in progress, this would cause confusing > netlink extack errors as the firmware cannot respond or process the > request properly during the reset time. > > Return (-EBUSY) and extack error for the user who tries access/modify > the config of dpll/pin through firmware during the reset time. > > The PF reset and kernel access to dpll data are both asynchronous. It is > not possible to guard all the possible reset paths with any determinictic > approach. I.e., it is possible that reset starts after reset check is > performed (or if the reset would be checked after mutex is locked), but at > the same time it is not possible to wait for dpll mutex unlock in the > reset flow. > This is best effort solution to at least give a clue to the user > what is happening in most of the cases, knowing that there are possible > race conditions where the user could see a different error received > from firmware due to reset unexpectedly starting. > > Test by looping execution of below steps until netlink error appears: > - perform PF reset > $ echo 1 > /sys/class/net/<ice PF>/device/reset > - i.e. try to alter/read dpll/pin config: > $ ./tools/net/ynl/cli.py --spec Documentation/netlink/specs/dpll.yaml \ > --dump pin-get > > Fixes: d7999f5ea64b ("ice: implement dpll interface to control cgu") > Reviewed-by: Aleksandr Loktionov <[email protected]> > Reviewed-by: Przemek Kitszel <[email protected]> > Signed-off-by: Arkadiusz Kubalewski <[email protected]> > --- > v2: > - remove newline from extack error > - change "pf" -> "PF" in extack error > --- > drivers/net/ethernet/intel/ice/ice_dpll.c | 38 +++++++++++++++++++++++ > 1 file changed, 38 insertions(+) >
Tested-by: Pucha Himasekhar Reddy <[email protected]> (A Contingent worker at Intel)
