]> git.baikalelectronics.ru Git - kernel.git/commit
tsnep: Fix rotten packets
authorGerhard Engleder <gerhard@engleder-embedded.com>
Sat, 19 Nov 2022 21:18:25 +0000 (22:18 +0100)
committerPaolo Abeni <pabeni@redhat.com>
Tue, 22 Nov 2022 14:47:17 +0000 (15:47 +0100)
commit220a9abbb5bb49f28b32ff050eeab402c5e74c7d
treea6b31e48b66ebc83818bdf2c6babe7a480a8a5f6
parent203200d88bb4c5f6c58463fb18ac8a51b8fbd860
tsnep: Fix rotten packets

If PTP synchronisation is done every second, then sporadic the interval
is higher than one second:

ptp4l[696.582]: master offset        -17 s2 freq   -1891 path delay 573
ptp4l[697.582]: master offset        -22 s2 freq   -1901 path delay 573
ptp4l[699.368]: master offset         -1 s2 freq   -1887 path delay 573
      ^^^^^^^ Should be 698.582!

This problem is caused by rotten packets, which are received after
polling but before interrupts are enabled again. This can be fixed by
checking for pending work and rescheduling if necessary after interrupts
has been enabled again.

Fixes: ed2d3a71e548 ("tsnep: Add TSN endpoint Ethernet MAC driver")
Signed-off-by: Gerhard Engleder <gerhard@engleder-embedded.com>
Link: https://lore.kernel.org/r/20221119211825.81805-1-gerhard@engleder-embedded.com
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
drivers/net/ethernet/engleder/tsnep_main.c