[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20220801133750.7312-1-achaiken@aurora.tech>
Date: Mon, 1 Aug 2022 06:37:50 -0700
From: achaiken@...ora.tech
To: jesse.brandeburg@...el.com, richardcochran@...il.com
Cc: spayne@...ora.tech, achaiken@...ora.tech, alison@...-devel.com,
netdev@...r.kernel.org, intel-wired-lan@...ts.osuosl.org
Subject: [PATCH] Use ixgbe_ptp_reset on linkup/linkdown for X550
From: Steve Payne <spayne@...ora.tech>
For an unknown reason, when `ixgbe_ptp_start_cyclecounter` is called
from `ixgbe_watchdog_link_is_down` the PHC on the NIC jumps backward
by a seemingly inconsistent amount, which causes discontinuities in
time synchronization. Explicitly reset the NIC's PHC to
`CLOCK_REALTIME` whenever the NIC goes up or down by calling
`ixgbe_ptp_reset` instead of the bare `ixgbe_ptp_start_cyclecounter`.
Signed-off-by: Steve Payne <spayne@...ora.tech>
Signed-off-by: Alison Chaiken <achaiken@...ora.tech>
---
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
index 750b02bb2fdc2..ab1ec076fa75f 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
@@ -7462,7 +7462,7 @@ static void ixgbe_watchdog_link_is_up(struct ixgbe_adapter *adapter)
adapter->last_rx_ptp_check = jiffies;
if (test_bit(__IXGBE_PTP_RUNNING, &adapter->state))
- ixgbe_ptp_start_cyclecounter(adapter);
+ ixgbe_ptp_reset(adapter);
switch (link_speed) {
case IXGBE_LINK_SPEED_10GB_FULL:
@@ -7527,7 +7527,7 @@ static void ixgbe_watchdog_link_is_down(struct ixgbe_adapter *adapter)
adapter->flags2 |= IXGBE_FLAG2_SEARCH_FOR_SFP;
if (test_bit(__IXGBE_PTP_RUNNING, &adapter->state))
- ixgbe_ptp_start_cyclecounter(adapter);
+ ixgbe_ptp_reset(adapter);
e_info(drv, "NIC Link is Down\n");
netif_carrier_off(netdev);
--
2.32.0
Powered by blists - more mailing lists