pkt_sched: Fix noqueue_qdisc initialization.
authorDavid S. Miller <davem@davemloft.net>
Sat, 19 Jul 2008 06:00:11 +0000 (23:00 -0700)
committerDavid S. Miller <davem@davemloft.net>
Sat, 19 Jul 2008 06:00:11 +0000 (23:00 -0700)
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>
net/sched/sch_generic.c

index 14cc443..522a41a 100644 (file)
@@ -340,12 +340,19 @@ static struct Qdisc_ops noqueue_qdisc_ops __read_mostly = {
        .owner          =       THIS_MODULE,
 };
 
+static struct Qdisc noqueue_qdisc;
+static struct netdev_queue noqueue_netdev_queue = {
+       .qdisc          =       &noqueue_qdisc,
+};
+
 static struct Qdisc noqueue_qdisc = {
        .enqueue        =       NULL,
        .dequeue        =       noop_dequeue,
        .flags          =       TCQ_F_BUILTIN,
        .ops            =       &noqueue_qdisc_ops,
        .list           =       LIST_HEAD_INIT(noqueue_qdisc.list),
+       .q.lock         =       __SPIN_LOCK_UNLOCKED(noqueue_qdisc.q.lock),
+       .dev_queue      =       &noqueue_netdev_queue,
 };