RE: [PATCH iwl-net 04/12] ice: call PTP link change only from link events

"Nowlin, Alexander" <[email protected]>
Newsgroups org.osuosl.intel-wired-lan,org.kernel.vger.netdev
Message-ID <LV1PR11MB87908DACA513E150BCD0540D90A22@LV1PR11MB8790.namprd11.prod.outlook.com>
> -----Original Message-----
> From: Keller, Jacob E <[email protected]> 
> Sent: Friday, August 21, 2026 5:13 PM
> To: Intel Wired LAN <[email protected]>
> Cc: [email protected]; Machnikowski, Maciej <[email protected]>; Nguyen, Anthony L <[email protected]>; Korba, Przemyslaw <[email protected]>; Nitka, Grzegorz <[email protected]>; Oros, Petr <[email protected]>; Nowlin, Alexander <[email protected]>; Bross, Kevin <[email protected]>; Cavatur, Ranjit <[email protected]>; Keller, Jacob E <[email protected]>; Kubalewski, Arkadiusz <[email protected]>; Loktionov, Aleksandr <[email protected]>; Korba, Przemyslaw <[email protected]>; Machnikowski, > Maciej <[email protected]>
> Subject: [PATCH iwl-net 04/12] ice: call PTP link change only from link events
> 
> From: Arkadiusz Kubalewski <[email protected]>
> 
> Remove redundant ice_ptp_link_change() calls from ice_up_complete() and ice_down(). These duplicate the call already made from ice_handle_link_event(), creating three problems:
> 
> 1. Double initialization on link-up: ice_handle_link_event() calls
>    ice_ptp_link_change(true), then ice_up_complete() calls it again.
>    The second call re-enters ice_ptp_port_phy_restart(), re-setting the
>    calibrating flag and restarting the PHY timer while the first
>    invocation's offset verification work (ov_work) may still be running.
> 
> 2. Premature cleanup on administrative down: ice_down() calls
>    ice_ptp_link_change(false) during ifconfig down or reset preparation,
>    even when the physical link is still up. This clears timestamp state
>    unnecessarily and can interfere with ongoing PTP operations.
> 
> 3. Ordering dependency: ice_down()/ice_up_complete() are called during
>    reset sequences where PTP may not be fully initialized, creating
>    edge cases with partially configured state.
> 
> The link event handler is the correct and sufficient place to drive PTP link state changes, as it reflects actual physical link transitions. Remove the calls of ice_ptp_link_change from the ice_down()/ice_up() flows.
> 
> Initialize the link_up in ice_ptp_init() and ensure that we check and restore the link status at the end of the rebuild flow, ensuring that we initialize the PHY timer appropriately after a reset.
> 
> Fixes: 6b1ff5d39228 ("ice: always call ice_ptp_link_change and make it void")
> Reviewed-by: Aleksandr Loktionov <[email protected]>
> Signed-off-by: Arkadiusz Kubalewski <[email protected]>
> Signed-off-by: Przemyslaw Korba <[email protected]>
> Signed-off-by: Petr Oros <[email protected]>
> Reviewed-by: Maciek Machnikowski <[email protected]>
> ---
>  drivers/net/ethernet/intel/ice/ice_main.c | 11 +++++++--  drivers/net/ethernet/intel/ice/ice_ptp.c  | 38 +++++++++++++++++++++++--------
>  2 files changed, 37 insertions(+), 12 deletions(-)

Tested-by: Alexander Nowlin <[email protected]>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.