From: Jacob Keller <jacob.e.keller@intel.com>
To: Intel Wired LAN <intel-wired-lan@lists.osuosl.org>
Subject: [Intel-wired-lan] [PATCH net-next 10/15] ice: disable Tx timestamps while link is down
Date: Tue, 1 Nov 2022 15:52:35 -0700 [thread overview]
Message-ID: <20221101225240.421525-11-jacob.e.keller@intel.com> (raw)
In-Reply-To: <20221101225240.421525-1-jacob.e.keller@intel.com>
Introduce a new link_down field for the Tx tracker which indicates whether
the link is down for a given port.
Use this bit to prevent any Tx timestamp requests from starting while link
is down. This ensures that we do not try to start new timestamp requests
until after link has been restored.
Signed-off-by: Jacob Keller <jacob.e.keller@intel.com>
---
drivers/net/ethernet/intel/ice/ice_ptp.c | 11 ++++++++++-
drivers/net/ethernet/intel/ice/ice_ptp.h | 6 ++++--
2 files changed, 14 insertions(+), 3 deletions(-)
diff --git a/drivers/net/ethernet/intel/ice/ice_ptp.c b/drivers/net/ethernet/intel/ice/ice_ptp.c
index 91ee36d3d21f..cfc20e430ff5 100644
--- a/drivers/net/ethernet/intel/ice/ice_ptp.c
+++ b/drivers/net/ethernet/intel/ice/ice_ptp.c
@@ -632,7 +632,7 @@ ice_ptp_is_tx_tracker_up(struct ice_ptp_tx *tx)
{
lockdep_assert_held(&tx->lock);
- return tx->init && !tx->calibrating;
+ return tx->init && !tx->calibrating && !tx->link_down;
}
/**
@@ -829,6 +829,8 @@ ice_ptp_alloc_tx_tracker(struct ice_ptp_tx *tx)
spin_lock(&tx->lock);
tx->init = 1;
+ tx->link_down = 0;
+ tx->calibrating = 0;
spin_unlock(&tx->lock);
return 0;
@@ -1389,6 +1391,13 @@ void ice_ptp_link_change(struct ice_pf *pf, u8 port, bool linkup)
/* Update cached link status for this port immediately */
ptp_port->link_up = linkup;
+ /* Set the link status of the Tx tracker. While link is down, all Tx
+ * timestamp requests will be ignored.
+ */
+ spin_lock(&ptp_port->tx.lock);
+ ptp_port->tx.link_down = !linkup;
+ spin_unlock(&ptp_port->tx.lock);
+
/* E810 devices do not need to reconfigure the PHY */
if (ice_is_e810(&pf->hw))
return;
diff --git a/drivers/net/ethernet/intel/ice/ice_ptp.h b/drivers/net/ethernet/intel/ice/ice_ptp.h
index 5c7442aa6d88..0fe9826a9a1c 100644
--- a/drivers/net/ethernet/intel/ice/ice_ptp.h
+++ b/drivers/net/ethernet/intel/ice/ice_ptp.h
@@ -114,6 +114,7 @@ struct ice_tx_tstamp {
* @init: if true, the tracker is initialized;
* @calibrating: if true, the PHY is calibrating the Tx offset. During this
* window, timestamps are temporarily disabled.
+ * @link_down: if true, the link is down and timestamp requests are disabled
*/
struct ice_ptp_tx {
spinlock_t lock; /* lock protecting in_use bitmap */
@@ -122,8 +123,9 @@ struct ice_ptp_tx {
u8 block;
u8 offset;
u8 len;
- u8 init;
- u8 calibrating;
+ u8 init : 1;
+ u8 calibrating : 1;
+ u8 link_down : 1;
};
/* Quad and port information for initializing timestamp blocks */
--
2.38.0.83.gd420dda05763
_______________________________________________
Intel-wired-lan mailing list
Intel-wired-lan@osuosl.org
https://lists.osuosl.org/mailman/listinfo/intel-wired-lan
next prev parent reply other threads:[~2022-11-01 22:53 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-11-01 22:52 [Intel-wired-lan] [PATCH net-next 00/15] ice: improve Tx timestamp corner cases Jacob Keller
2022-11-01 22:52 ` [Intel-wired-lan] [PATCH net-next 01/15] ice: Use more generic names for ice_ptp_tx fields Jacob Keller
2022-11-03 20:44 ` Tony Nguyen
2022-11-03 20:50 ` Temerkhanov, Sergey
2022-11-03 20:54 ` Jacob Keller
2022-11-03 20:53 ` Jacob Keller
2022-11-17 10:40 ` G, GurucharanX
2022-11-01 22:52 ` [Intel-wired-lan] [PATCH net-next 02/15] ice: Remove the E822 vernier "bypass" logic Jacob Keller
2022-11-01 22:52 ` [Intel-wired-lan] [PATCH net-next 03/15] ice: Reset TS memory for all quads Jacob Keller
2022-11-01 22:52 ` [Intel-wired-lan] [PATCH net-next 04/15] ice: fix misuse of "link err" with "link status" Jacob Keller
2022-11-01 22:52 ` [Intel-wired-lan] [PATCH net-next 05/15] ice: always call ice_ptp_link_change and make it void Jacob Keller
2022-11-02 0:01 ` Ertman, David M
2022-11-03 20:44 ` Tony Nguyen
2022-11-03 20:48 ` Jacob Keller
2022-11-01 22:52 ` [Intel-wired-lan] [PATCH net-next 06/15] ice: handle discarding old Tx requests in ice_ptp_tx_tstamp Jacob Keller
2022-11-01 22:52 ` [Intel-wired-lan] [PATCH net-next 07/15] ice: check Tx timestamp memory register for ready timestamps Jacob Keller
2022-11-03 19:23 ` Jacob Keller
2022-11-03 20:44 ` Tony Nguyen
2022-11-03 20:52 ` Jacob Keller
2022-11-03 20:45 ` Stillwell Jr, Paul M
2022-11-03 20:52 ` Jacob Keller
2022-11-01 22:52 ` [Intel-wired-lan] [PATCH net-next 08/15] ice: protect init and calibrating fields with spinlock Jacob Keller
2022-11-01 22:52 ` [Intel-wired-lan] [PATCH net-next 09/15] ice: return true if Tx tracker is uninitialized Jacob Keller
2022-11-01 22:52 ` Jacob Keller [this message]
2022-11-01 22:52 ` [Intel-wired-lan] [PATCH net-next 11/15] ice: cleanup allocations in ice_ptp_alloc_tx_tracker Jacob Keller
2022-11-01 22:52 ` [Intel-wired-lan] [PATCH net-next 12/15] ice: handle flushing stale Tx timestamps in ice_ptp_tx_tstamp Jacob Keller
2022-11-01 22:52 ` [Intel-wired-lan] [PATCH net-next 13/15] ice: only check set bits in ice_ptp_flush_tx_tracker Jacob Keller
2022-11-01 22:52 ` [Intel-wired-lan] [PATCH net-next 14/15] ice: make Tx and Rx vernier offset calibration independent Jacob Keller
2022-11-03 20:45 ` Tony Nguyen
2022-11-03 20:52 ` Jacob Keller
2022-11-01 22:52 ` [Intel-wired-lan] [PATCH net-next 15/15] ice: reschedule ice_ptp_wait_for_offset_valid during reset Jacob Keller
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20221101225240.421525-11-jacob.e.keller@intel.com \
--to=jacob.e.keller@intel.com \
--cc=intel-wired-lan@lists.osuosl.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox