pkt_sched: Don't hold qdisc lock over qdisc_destroy().
authorDavid S. Miller <davem@davemloft.net>
Tue, 19 Aug 2008 04:03:15 +0000 (21:03 -0700)
committerDavid S. Miller <davem@davemloft.net>
Tue, 19 Aug 2008 04:06:19 +0000 (21:06 -0700)
commit4d8863a29c4755a0461cd31b6865026187d6c43a
tree502b355314b1ff2e6cef52bf3778aba3bdae80cd
parent25bfcd5a78a377ea4c54a3c21e44590e2fc478a6
pkt_sched: Don't hold qdisc lock over qdisc_destroy().

Based upon reports by Denys Fedoryshchenko, and feedback
and help from Jarek Poplawski and Herbert Xu.

We always either:

1) Never made an external reference to this qdisc.

or

2) Did a dev_deactivate() which purged all asynchronous
   references.

So do not lock the qdisc when we call qdisc_destroy(),
it's illegal anyways as when we drop the lock this is
free'd memory.

Signed-off-by: David S. Miller <davem@davemloft.net>
net/sched/sch_api.c
net/sched/sch_generic.c