Merge branch 'net-mscc-ocelot-fix-missing-lock-in-ocelot_port_xmit'
authorJakub Kicinski <kuba@kernel.org>
Fri, 13 Feb 2026 03:01:17 +0000 (19:01 -0800)
committerJakub Kicinski <kuba@kernel.org>
Fri, 13 Feb 2026 03:01:18 +0000 (19:01 -0800)
commit8383522821c6fea6bbb4bc0317056c433a482a95
tree34f54f4003de8c456022558761a008c8b7d7545f
parent6c28aa8dfdf24f554d4c5d4ff7d723a95360d94a
parent026f6513c5880c2c89e38ad66bbec2868f978605
Merge branch 'net-mscc-ocelot-fix-missing-lock-in-ocelot_port_xmit'

Ziyi Guo says:

====================
net: mscc: ocelot: fix missing lock in ocelot_port_xmit()

ocelot_port_xmit() calls ocelot_can_inject() and
ocelot_port_inject_frame() without holding the injection group lock.
Both functions contain lockdep_assert_held() for the injection lock,
and the correct caller felix_port_deferred_xmit() properly acquires
the lock using ocelot_lock_inj_grp() before calling these functions.

this v3 splits the fix into a 3-patch series to separate
refactoring from the behavioral change:

  1/3: Extract the PTP timestamp handling into an ocelot_xmit_timestamp()
       helper so the logic isn't duplicated when the function is split.

  2/3: Split ocelot_port_xmit() into ocelot_port_xmit_fdma() and
       ocelot_port_xmit_inj(), keeping the FDMA and register injection
       code paths fully separate.

  3/3: Add ocelot_lock_inj_grp()/ocelot_unlock_inj_grp() in
       ocelot_port_xmit_inj() to fix the missing lock protection.

Patches 1-2 are pure refactors with no behavioral change.
Patch 3 is the actual bug fix.
====================

Link: https://patch.msgid.link/20260208225602.1339325-1-n7l8m4@u.northwestern.edu
Signed-off-by: Jakub Kicinski <kuba@kernel.org>