taprio: Use taprio_reset_tc() to reset Traffic Classes configuration
authorVinicius Costa Gomes <vinicius.gomes@intel.com>
Thu, 6 Feb 2020 21:46:09 +0000 (13:46 -0800)
committerDavid S. Miller <davem@davemloft.net>
Fri, 7 Feb 2020 10:30:03 +0000 (11:30 +0100)
When destroying the current taprio instance, which can happen when the
creation of one fails, we should reset the traffic class configuration
back to the default state.

netdev_reset_tc() is a better way because in addition to setting the
number of traffic classes to zero, it also resets the priority to
traffic classes mapping to the default value.

Fixes: 5a781ccbd19e ("tc: Add support for configuring the taprio scheduler")
Signed-off-by: Vinicius Costa Gomes <vinicius.gomes@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/sched/sch_taprio.c

index b82a976..21df690 100644 (file)
@@ -1588,7 +1588,7 @@ static void taprio_destroy(struct Qdisc *sch)
        }
        q->qdiscs = NULL;
 
-       netdev_set_num_tc(dev, 0);
+       netdev_reset_tc(dev);
 
        if (q->oper_sched)
                call_rcu(&q->oper_sched->rcu, taprio_free_sched_cb);