> -----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
