On 5/4/2026 4:00 AM, Sergey Temerkhanov wrote:
> 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.
> 
> 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         | 10 ++-
>  drivers/net/ethernet/intel/ice/ice_adapter.h |  2 +-
>  drivers/net/ethernet/intel/ice/ice_ptp.c     | 66 +++++++++++++++++---
>  drivers/net/ethernet/intel/ice/ice_ptp_hw.c  | 26 ++++++--
>  4 files changed, 89 insertions(+), 15 deletions(-)
> 

What base tree did you apply this to? It doesn't apply directly to net,
net-next, or either the tip of dev-queue for iwl-net or iwl-next.

It looks like you have this in your context:

>  static void ice_ptp_setup_adapter(struct ice_pf *pf)
>  {
> -     pf->adapter->ctrl_pf = pf;
> +     rcu_assign_pointer(pf->adapter->ctrl_pf, pf);
>  }
>  


But the ice_ptp_setup_adapter() function has other logic that has been
there since its existence?

Could you please rebase and make a v2 which applies cleanly to the
current tree? I don't want to make a mistake while attempting to resolve
conflicts for a change with this big of a scope.

Thanks,
Jake

Reply via email to