Commit ac7100ba authored by Ben Hutchings's avatar Ben Hutchings

sch_mqprio: Always set num_tc to 0 in mqprio_destroy()

All the cleanup code in mqprio_destroy() is currently conditional on
priv->qdiscs being non-null, but that condition should only apply to
the per-queue qdisc cleanup.  We should always set the number of
traffic classes back to 0 here.
Signed-off-by: default avatarBen Hutchings <bhutchings@solarflare.com>
parent 263fb5b1
...@@ -29,18 +29,18 @@ static void mqprio_destroy(struct Qdisc *sch) ...@@ -29,18 +29,18 @@ static void mqprio_destroy(struct Qdisc *sch)
struct mqprio_sched *priv = qdisc_priv(sch); struct mqprio_sched *priv = qdisc_priv(sch);
unsigned int ntx; unsigned int ntx;
if (!priv->qdiscs) if (priv->qdiscs) {
return; for (ntx = 0;
ntx < dev->num_tx_queues && priv->qdiscs[ntx];
for (ntx = 0; ntx < dev->num_tx_queues && priv->qdiscs[ntx]; ntx++) ntx++)
qdisc_destroy(priv->qdiscs[ntx]); qdisc_destroy(priv->qdiscs[ntx]);
kfree(priv->qdiscs);
}
if (priv->hw_owned && dev->netdev_ops->ndo_setup_tc) if (priv->hw_owned && dev->netdev_ops->ndo_setup_tc)
dev->netdev_ops->ndo_setup_tc(dev, 0); dev->netdev_ops->ndo_setup_tc(dev, 0);
else else
netdev_set_num_tc(dev, 0); netdev_set_num_tc(dev, 0);
kfree(priv->qdiscs);
} }
static int mqprio_parse_opt(struct net_device *dev, struct tc_mqprio_qopt *qopt) static int mqprio_parse_opt(struct net_device *dev, struct tc_mqprio_qopt *qopt)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment