aboutsummaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2011-02-15 15:25:19 -0500
committerDavid S. Miller <davem@davemloft.net>2011-02-15 15:25:19 -0500
commitf878b995b0f746f5726af9e66940f3bf373dae91 (patch)
tree81fa0cc358ff9957116468a0c37d4f7f3f493cb3 /net
parent29e1846a6ba84e0c6e257dd5b1231ed53b98fe9b (diff)
parent94b274bf5fba6c75b922c8a23ad4b5639a168780 (diff)
Merge branch 'for-davem' of git://git.kernel.org/pub/scm/linux/kernel/git/bwh/sfc-next-2.6
Diffstat (limited to 'net')
-rw-r--r--net/core/dev.c3
-rw-r--r--net/sched/sch_mqprio.c14
2 files changed, 9 insertions, 8 deletions
diff --git a/net/core/dev.c b/net/core/dev.c
index a4132766d363..4580460ebecd 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -1648,7 +1648,8 @@ int netif_set_real_num_tx_queues(struct net_device *dev, unsigned int txq)
1648 if (txq < 1 || txq > dev->num_tx_queues) 1648 if (txq < 1 || txq > dev->num_tx_queues)
1649 return -EINVAL; 1649 return -EINVAL;
1650 1650
1651 if (dev->reg_state == NETREG_REGISTERED) { 1651 if (dev->reg_state == NETREG_REGISTERED ||
1652 dev->reg_state == NETREG_UNREGISTERING) {
1652 ASSERT_RTNL(); 1653 ASSERT_RTNL();
1653 1654
1654 rc = netdev_queue_update_kobjects(dev, dev->real_num_tx_queues, 1655 rc = netdev_queue_update_kobjects(dev, dev->real_num_tx_queues,
diff --git a/net/sched/sch_mqprio.c b/net/sched/sch_mqprio.c
index effd4ee0e880..ace37f9f1cd0 100644
--- a/net/sched/sch_mqprio.c
+++ b/net/sched/sch_mqprio.c
@@ -29,18 +29,18 @@ static void mqprio_destroy(struct Qdisc *sch)
29 struct mqprio_sched *priv = qdisc_priv(sch); 29 struct mqprio_sched *priv = qdisc_priv(sch);
30 unsigned int ntx; 30 unsigned int ntx;
31 31
32 if (!priv->qdiscs) 32 if (priv->qdiscs) {
33 return; 33 for (ntx = 0;
34 34 ntx < dev->num_tx_queues && priv->qdiscs[ntx];
35 for (ntx = 0; ntx < dev->num_tx_queues && priv->qdiscs[ntx]; ntx++) 35 ntx++)
36 qdisc_destroy(priv->qdiscs[ntx]); 36 qdisc_destroy(priv->qdiscs[ntx]);
37 kfree(priv->qdiscs);
38 }
37 39
38 if (priv->hw_owned && dev->netdev_ops->ndo_setup_tc) 40 if (priv->hw_owned && dev->netdev_ops->ndo_setup_tc)
39 dev->netdev_ops->ndo_setup_tc(dev, 0); 41 dev->netdev_ops->ndo_setup_tc(dev, 0);
40 else 42 else
41 netdev_set_num_tc(dev, 0); 43 netdev_set_num_tc(dev, 0);
42
43 kfree(priv->qdiscs);
44} 44}
45 45
46static int mqprio_parse_opt(struct net_device *dev, struct tc_mqprio_qopt *qopt) 46static int mqprio_parse_opt(struct net_device *dev, struct tc_mqprio_qopt *qopt)