--- x/net/sched/sch_taprio.c +++ y/net/sched/sch_taprio.c @@ -1847,6 +1847,7 @@ static int taprio_change(struct Qdisc *s return -EOPNOTSUPP; } q->flags = taprio_flags; + taprio_set_picos_per_byte(dev, q); err = taprio_parse_mqprio_opt(dev, mqprio, extack, q->flags); if (err < 0) @@ -1907,7 +1908,6 @@ static int taprio_change(struct Qdisc *s if (err < 0) goto free_sched; - taprio_set_picos_per_byte(dev, q); taprio_update_queue_max_sdu(q, new_admin, stab); if (FULL_OFFLOAD_IS_ENABLED(q->flags))