[PATCH net 0/2] net/sched: taprio: fix RCU stall from replayed schedule entries

From: Krystian Kaniewski

Date: Tue Oct 06 2026 - 07:35:09 EST


syzbot reported an RCU stall with a software taprio schedule made of a
single 127 ns entry. When advance_sched() falls behind, it replays every
missed entry inside the timer interrupt and the backlog only grows.
Patch 2 makes it continue from the entry in progress instead.

Patch 2 then checks for an admin schedule handover once after catching
up. That requires the cycle_time_extension comparison to be monotonic,
so the sum now saturates instead of wrapping. As a result a large
extension can hand over to an admin schedule whose start time leaves no
room for the timestamps derived from it. Initializing such a schedule
already overflows today, and a carefully chosen extension can already
reach it. Patch 1 rejects these schedules at configuration time and
comes first, so the series never hands over to one.

Krystian Kaniewski (2):
net/sched: taprio: reject software schedules that overflow their
timestamps
net/sched: taprio: do not replay missed entries in advance_sched()

net/sched/sch_taprio.c | 171 +++++++++++++++++++++++++++++++++++------
1 file changed, 149 insertions(+), 22 deletions(-)


base-commit: af39eb111ce6b5eba9c08513b62c4868eb7e7fd5
--
2.53.0