diff options
author | David S. Miller <davem@davemloft.net> | 2008-07-19 02:00:11 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2008-07-19 02:00:11 -0400 |
commit | 30ee42be00b7a50929a73cb617f70b1d3219eb69 (patch) | |
tree | d2da673ab69eb897dd558be4df90a938f15afba8 /net/sched/sch_generic.c | |
parent | 3072367300aa8c779e3a14ee8e89de079e90f3ad (diff) |
pkt_sched: Fix noqueue_qdisc initialization.
Like noop_qdisc, it needs a dummy backpointer and
explicit qdisc->q.lock initialization.
Based upon a report by Stephen Hemminger.
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/sched/sch_generic.c')
-rw-r--r-- | net/sched/sch_generic.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/net/sched/sch_generic.c b/net/sched/sch_generic.c index 14cc443d0490..522a41a9f904 100644 --- a/net/sched/sch_generic.c +++ b/net/sched/sch_generic.c | |||
@@ -340,12 +340,19 @@ static struct Qdisc_ops noqueue_qdisc_ops __read_mostly = { | |||
340 | .owner = THIS_MODULE, | 340 | .owner = THIS_MODULE, |
341 | }; | 341 | }; |
342 | 342 | ||
343 | static struct Qdisc noqueue_qdisc; | ||
344 | static struct netdev_queue noqueue_netdev_queue = { | ||
345 | .qdisc = &noqueue_qdisc, | ||
346 | }; | ||
347 | |||
343 | static struct Qdisc noqueue_qdisc = { | 348 | static struct Qdisc noqueue_qdisc = { |
344 | .enqueue = NULL, | 349 | .enqueue = NULL, |
345 | .dequeue = noop_dequeue, | 350 | .dequeue = noop_dequeue, |
346 | .flags = TCQ_F_BUILTIN, | 351 | .flags = TCQ_F_BUILTIN, |
347 | .ops = &noqueue_qdisc_ops, | 352 | .ops = &noqueue_qdisc_ops, |
348 | .list = LIST_HEAD_INIT(noqueue_qdisc.list), | 353 | .list = LIST_HEAD_INIT(noqueue_qdisc.list), |
354 | .q.lock = __SPIN_LOCK_UNLOCKED(noqueue_qdisc.q.lock), | ||
355 | .dev_queue = &noqueue_netdev_queue, | ||
349 | }; | 356 | }; |
350 | 357 | ||
351 | 358 | ||