pkt_sched: fq: do not hold qdisc lock while allocating memory
authorEric Dumazet <edumazet@google.com>
Fri, 7 Mar 2014 06:57:52 +0000 (22:57 -0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 14 Apr 2014 13:47:19 +0000 (06:47 -0700)
commiteafe827b3bff6faf6c108a7b24e4bb6a025bd514
treef2606f01479f8ea63ea29630890a956541c251cc
parent7cf38b2b8931f760e5eb4433f257a0b6202c9c5e
pkt_sched: fq: do not hold qdisc lock while allocating memory

[ Upstream commit 2d8d40afd187bced0a3d056366fb58d66fe845e3 ]

Resizing fq hash table allocates memory while holding qdisc spinlock,
with BH disabled.

This is definitely not good, as allocation might sleep.

We can drop the lock and get it when needed, we hold RTNL so no other
changes can happen at the same time.

Signed-off-by: Eric Dumazet <edumazet@google.com>
Fixes: afe4fd062416 ("pkt_sched: fq: Fair Queue packet scheduler")
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
net/sched/sch_fq.c