On Sun, Feb 08, 2026 at 10:55:59PM +0000, Ziyi Guo wrote:
> 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.
>
> v3:
> - Split into 3-patch series per Vladimir's review
> - Separate FDMA and register injection paths into distinct functions
> v2:
> - Added Fixes tag
> v1:
> - Initial submission
For the series:
Reviewed-by: Vladimir Oltean <vladimir.oltean@nxp.com>
I see you didn't specify the target tree name in the git subject prefix
(see Documentation/process/maintainer-netdev.rst). For the future,
please do so. This patch set should go to 'net'.