Skip to content

Commit b6fba4b

Browse files
vladimirolteankuba-moo
authored andcommitted
net: mscc: ocelot: improve handling of TX timestamp for unknown skb
This condition, theoretically impossible to trigger, is not really handled well. By "continuing", we are skipping the write to SYS_PTP_NXT which advances the timestamp FIFO to the next entry. So we are reading the same FIFO entry all over again, printing stack traces and eventually killing the kernel. No real problem has been observed here. This is part of a larger rework of the timestamp IRQ procedure, with this logical change split out into a patch of its own. We will need to "goto next_ts" for other conditions as well. Fixes: 9fde506 ("net: mscc: ocelot: warn when a PTP IRQ is raised for an unknown skb") Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com> Link: https://patch.msgid.link/20241205145519.1236778-3-vladimir.oltean@nxp.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
1 parent 4b01bec commit b6fba4b

File tree

1 file changed

+2
-2
lines changed

1 file changed

+2
-2
lines changed

drivers/net/ethernet/mscc/ocelot_ptp.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -786,7 +786,7 @@ void ocelot_get_txtstamp(struct ocelot *ocelot)
786786
spin_unlock_irqrestore(&port->tx_skbs.lock, flags);
787787

788788
if (WARN_ON(!skb_match))
789-
continue;
789+
goto next_ts;
790790

791791
if (!ocelot_validate_ptp_skb(skb_match, seqid)) {
792792
dev_err_ratelimited(ocelot->dev,
@@ -804,7 +804,7 @@ void ocelot_get_txtstamp(struct ocelot *ocelot)
804804
shhwtstamps.hwtstamp = ktime_set(ts.tv_sec, ts.tv_nsec);
805805
skb_complete_tx_timestamp(skb_match, &shhwtstamps);
806806

807-
/* Next ts */
807+
next_ts:
808808
ocelot_write(ocelot, SYS_PTP_NXT_PTP_NXT, SYS_PTP_NXT);
809809
}
810810
}

0 commit comments

Comments
 (0)