[PATCH net 0/3] Fixes for Felix DSA driver calculation of tc-taprio guard bands

From: Vladimir Oltean
Date: Fri Sep 02 2022 - 17:57:27 EST


This series fixes some bugs which are not quite new, but date from v5.13
when static guard bands were enabled by Michael Walle to prevent
tc-taprio overruns.

The investigation started when Xiaoliang asked privately what is the
expected max SDU for a traffic class when its minimum gate interval is
10 us. The answer, as it turns out, is not an L1 size of 1250 octets,
but half of that, since otherwise, the switch will not consider frames
for egress scheduling, because the static guard band is larger than the
time interval.

The fix for that (patch 1/3) is relatively small, but during testing, it
became apparent that cut-through forwarding prevents oversized frame
dropping from working properly. This is solved through the larger patch
2/3. Finally, patch 3/3 fixes one more tc-taprio locking problem found
through code inspection.

Vladimir Oltean (3):
net: dsa: felix: allow small tc-taprio windows to send at least some
packets
net: dsa: felix: disable cut-through forwarding for frames oversized
for tc-taprio
net: dsa: felix: access QSYS_TAG_CONFIG under tas_lock in
vsc9959_sched_speed_set

drivers/net/dsa/ocelot/felix_vsc9959.c | 141 ++++++++++++++++---------
1 file changed, 93 insertions(+), 48 deletions(-)

--
2.34.1