• Eric Dumazet's avatar
    net/sched: fix missing spinlock init · 7b5edbc4
    Eric Dumazet authored
    Under network load, doing :
    
    tc qdisc del dev eth0 root
    
    triggers :
    
    [  167.193087] BUG: spinlock bad magic on CPU#3, udpflood/4928
    [  167.193139]  lock: c15bc324, .magic: 00000000, .owner:
    <none>/-1, .owner_cpu: -1
    [  167.193193] Pid: 4928, comm: udpflood Not tainted
    2.6.36-rc7-11417-g215340c-dirty #323
    [  167.193245] Call Trace:
    [  167.193292]  [<c13abaa0>] ? printk+0x18/0x20
    [  167.193342]  [<c11afb53>] spin_bug+0xa3/0xf0
    [  167.193389]  [<c11afcdd>] do_raw_spin_lock+0x7d/0x160
    [  167.193440]  [<c1313d4e>] ? __dev_xmit_skb+0x27e/0x2b0
    [  167.193496]  [<c107382b>] ? trace_hardirqs_on+0xb/0x10
    [  167.193545]  [<c13ae99a>] _raw_spin_lock+0x3a/0x40
    [  167.193593]  [<c1313d4e>] ? __dev_xmit_skb+0x27e/0x2b0
    [  167.193641]  [<c1313d4e>] __dev_xmit_skb+0x27e/0x2b0
    
    commit 79640a4c (add additional lock to qdisc to increase
    throughput) forgot to initialize  noop_qdisc and noqueue_qdisc busylock
    Signed-off-by: default avatarEric Dumazet <eric.dumazet@gmail.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    7b5edbc4
sch_generic.c 20.8 KB