Rework usage of the control PF pointer in struct ice_adapter, so that it is always has a consistent state, since it is global for an adapter. Utilize RCU for reading the pointer value and atomic operations for changing it. Zero out the ctrl_pf pointer when the control PF is removed.
Previous version: https://mail-archive.com/[email protected]/msg18407.html v1->v2: Rebase onto the latest dev-queue branch v2->v3: Cosmetic fixes v3->v4: Add the rw_semaphore to protect the ctrl_pf Sergey Temerkhanov (3): ice: Convert ctrl_pf pointer in struct ice_adapter to RCU ice: Zero out the PTP control PF pointer at ice_adapter cleanup ice: Cache struct ice_hw pointer for split register reads Sergey Temerkhanov (3): ice: Convert ctrl_pf pointer in struct ice_adapter to RCU ice: Zero out the PTP control PF pointer at ice_adapter cleanup ice: Cache struct ice_hw pointer for split register reads drivers/net/ethernet/intel/ice/ice.h | 25 ++++- drivers/net/ethernet/intel/ice/ice_adapter.c | 1 + drivers/net/ethernet/intel/ice/ice_adapter.h | 5 +- drivers/net/ethernet/intel/ice/ice_ptp.c | 101 ++++++++++++++----- drivers/net/ethernet/intel/ice/ice_ptp_hw.c | 37 ++++++- drivers/net/ethernet/intel/ice/ice_txclk.c | 19 +++- 6 files changed, 147 insertions(+), 41 deletions(-) -- 2.53.0
