aboutsummaryrefslogtreecommitdiffstats
path: root/net/sched/sch_generic.c
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2008-07-19 02:00:11 -0400
committerDavid S. Miller <davem@davemloft.net>2008-07-19 02:00:11 -0400
commit30ee42be00b7a50929a73cb617f70b1d3219eb69 (patch)
treed2da673ab69eb897dd558be4df90a938f15afba8 /net/sched/sch_generic.c
parent3072367300aa8c779e3a14ee8e89de079e90f3ad (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.c7
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
343static struct Qdisc noqueue_qdisc;
344static struct netdev_queue noqueue_netdev_queue = {
345 .qdisc = &noqueue_qdisc,
346};
347
343static struct Qdisc noqueue_qdisc = { 348static 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