net/sched: taprio: fix calculation of maximum gate durations
authorVladimir Oltean <vladimir.oltean@nxp.com>
Wed, 15 Feb 2023 22:46:30 +0000 (00:46 +0200)
committerPaolo Abeni <pabeni@redhat.com>
Mon, 20 Feb 2023 07:46:57 +0000 (08:46 +0100)
commit09dbdf28f9f9fa27e16895c67fbd94ff36124766
treee374b9affdba50025e5d08013433bd5f816e7ae8
parentc078381856230f1e8e13738661d83c2b4b433819
net/sched: taprio: fix calculation of maximum gate durations

taprio_calculate_gate_durations() depends on netdev_get_num_tc() and
this returns 0. So it calculates the maximum gate durations for no
traffic class.

I had tested the blamed commit only with another patch in my tree, one
which in the end I decided isn't valuable enough to submit ("net/sched:
taprio: mask off bits in gate mask that exceed number of TCs").

The problem is that having this patch threw off my testing. By moving
the netdev_set_num_tc() call earlier, we implicitly gave to
taprio_calculate_gate_durations() the information it needed.

Extract only the portion from the unsubmitted change which applies the
mqprio configuration to the netdev earlier.

Link: https://patchwork.kernel.org/project/netdevbpf/patch/20230130173145.475943-15-vladimir.oltean@nxp.com/
Fixes: a306a90c8ffe ("net/sched: taprio: calculate tc gate durations")
Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
Reviewed-by: Kurt Kanzenbach <kurt@linutronix.de>
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
net/sched/sch_taprio.c