> -----Original Message-----
> From: Nguyen, Anthony L <[email protected]>
> Sent: Thursday, May 28, 2026 7:00 PM
> To: Vecera, Ivan <[email protected]>; Loktionov, Aleksandr
> <[email protected]>; [email protected]; Nitka,
> Grzegorz <[email protected]>; Keller, Jacob E
> <[email protected]>
> Cc: [email protected]
> Subject: Re: [Intel-wired-lan] [PATCH net] ice: fix PTP hang for E825C devices
> 
> 
> 
> On 5/28/2026 7:31 AM, Ivan Vecera wrote:
> > On 3/27/26 8:23 AM, Aleksandr Loktionov wrote:
> >> From: Grzegorz Nitka <[email protected]>
> >>
> >> Change the order of PTP reconfiguration when port goes down or up
> >> (ice_down and ice_up calls) to be more graceful and consistent from
> >> timestamp interrupts processing perspective.
> >>
> >> For both calls (ice_up and ice_down), accompanying ice_ptp_link_change
> >> is called which starts/stops PTP timer. This patch changes the order:
> >> - while link goes down: disable net device Tx first (netif_carrier_off,
> >>    netif_tx_disable), then call ice_ptp_link_change
> >> - while link goes up: ice_ptp_link_change called first, then re-enable
> >>    net device Tx (netif_tx_start_all_queues)
> >>
> >> Otherwise, there is a narrow window in which PTP timestamp request has
> >> been triggered and timestamp processing occurs when PTP timer is not
> >> enabled yet (up case) or already disabled (down case). This may lead to
> >> undefined behavior and receiving invalid timestamps. This case was
> >> observed on E825C devices only.
> >>
> >> Fixes: 6b1ff5d39228 ("ice: always call ice_ptp_link_change and make it
> >> void")
> >> Cc: [email protected]
> >> Signed-off-by: Grzegorz Nitka <[email protected]>
> >> Signed-off-by: Aleksandr Loktionov <[email protected]>
> >> ---
> >>
> >>   drivers/net/ethernet/intel/ice/ice_main.c | 4 ++--
> >>   1 file changed, 2 insertions(+), 2 deletions(-)
> >>
> >> diff --git a/drivers/net/ethernet/intel/ice/ice_main.c b/drivers/net/
> >> ethernet/intel/ice/ice_main.c
> >> index e7308e3..8896805 100644
> >> --- a/drivers/net/ethernet/intel/ice/ice_main.c
> >> +++ b/drivers/net/ethernet/intel/ice/ice_main.c
> >> @@ -6797,10 +6797,10 @@ static int ice_up_complete(struct ice_vsi *vsi)
> >>           (vsi->port_info->phy.link_info.link_info & ICE_AQ_LINK_UP) &&
> >>           ((vsi->netdev && (vsi->type == ICE_VSI_PF ||
> >>                     vsi->type == ICE_VSI_SF)))) {
> >> +        ice_ptp_link_change(pf, true);
> >>           ice_print_link_msg(vsi, true);
> >>           netif_tx_start_all_queues(vsi->netdev);
> >>           netif_carrier_on(vsi->netdev);
> >> -        ice_ptp_link_change(pf, true);
> >>       }
> >>       /* Perform an initial read of the statistics registers now to
> >> @@ -7328,9 +7328,9 @@ int ice_down(struct ice_vsi *vsi)
> >>       if (vsi->netdev) {
> >>           vlan_err = ice_vsi_del_vlan_zero(vsi);
> >> -        ice_ptp_link_change(vsi->back, false);
> >>           netif_carrier_off(vsi->netdev);
> >>           netif_tx_disable(vsi->netdev);
> >> +        ice_ptp_link_change(vsi->back, false);
> >>       }
> >>       ice_vsi_dis_irq(vsi);
> >
> > I cannot find this patch applied anywhere... IWL patchwork indicates
> > Changes Requested... I don't know why...
> 
> Hi Ivan,
> 
> The send to netdev had a couple things flagged by Sashiko:
> 
> https://lore.kernel.org/netdev/0558de37-fb75-428f-98d9-
> [email protected]/#t
> 
> We are looking to make the change that Jake mentioned "separating the
> PTP link state from the admin up/down state entirely."
> 
> Thanks,
> Tony

FYI ... Arek is testing alternative solution at the moment.

Regards

Grzegorz

Reply via email to