--- y/net/sched/sch_taprio.c +++ x/net/sched/sch_taprio.c @@ -747,7 +747,10 @@ first_run: rcu_assign_pointer(q->current_entry, next); spin_unlock(&q->current_entry_lock); - hrtimer_set_expires(&q->advance_timer, close_time); + if (ktime_after(close_time, timer->base->get_time())) + hrtimer_set_expires(&q->advance_timer, close_time); + else + hrtimer_forward_now(timer, ns_to_ktime(NSEC_PER_USEC * 10)); rcu_read_lock(); __netif_schedule(sch);