Skip to contentSkip to conversation

FAILED: patch "[PATCH] net: mscc: ocelot: warn when a PTP IRQ is raised for an" failed to apply to 5.4-stable tree

PATCH [email protected] 1 participant 1 message Oct 18, 2021

Subsystems (3)
lore
Share & tools
lore

[email protected]

author maintainer
#0 lore raw

The patch below does not apply to the 5.4-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.

thanks,

greg k-h

------------------ original commit in Linus's tree ------------------

From 9fde506e0c53b8309f69b18b4b8144c544b4b3b1 Mon Sep 17 00:00:00 2001
From: Vladimir Oltean <[email protected]>
Date: Tue, 12 Oct 2021 14:40:37 +0300
Subject: [PATCH] net: mscc: ocelot: warn when a PTP IRQ is raised for an
unknown skb

When skb_match is NULL, it means we received a PTP IRQ for a timestamp ID that the kernel has no idea about, since there is no skb in the timestamping queue with that timestamp ID.

This is a grave error and not something to just "continue" over. So print a big warning in case this happens.

Also, move the check above ocelot_get_hwtimestamp(), there is no point in reading the full 64-bit current PTP time if we're not going to do anything with it anyway for this skb.

Fixes 4e3b0468e6d7 ("net: mscc: PTP Hardware Clock (PHC) support")
drivers/net/ethernet/mscc/ocelot.c +3 -3
index 9c62f1d13adc..687c07c338cd 100644
@@ -747,12 +747,12 @@ void ocelot_get_txtstamp(struct ocelot *ocelot)
 
 		spin_unlock_irqrestore(&port->tx_skbs.lock, flags);
 
+		if (WARN_ON(!skb_match))
+			continue;
+
 		/* Get the h/w timestamp */
 		ocelot_get_hwtimestamp(ocelot, &ts);
 
-		if (unlikely(!skb_match))
-			continue;
-
 		/* Set the timestamp into the skb */
 		memset(&shhwtstamps, 0, sizeof(shhwtstamps));
 		shhwtstamps.hwtstamp = ktime_set(ts.tv_sec, ts.tv_nsec);