Re: [PATCH] pkt_sched: Destroy gen estimators under rtnl_lock().
From: Herbert Xu <herbert@gondor.apana.org.au>
Date: 2008-08-22 10:07:16
On Fri, Aug 22, 2008 at 01:55:13AM -0700, David Miller wrote:
quoted
quoted
We've got at least the RX and TX queues. That makes two locks and two lists.RX currently doesn't add anything to the list.That's correct, currently ingress qdiscs only support a hierarchy of single root and that's it.
We seem to be talking about different things. Yes the ingress hierachy has a single root, i.e., it's a tree. But that has nothing to do with what I was talking about. I'm talking about the list at dev->rx_queue.qdisc_sleeping->list which is certainly not guaranteed to be empty. If you look at qdisc_create you'll find that every time we create a non-root ingress qdisc we add it to that list (we have to, otherwise qdisc_lookup doesn't work at all for ingress qdiscs). So when somebody on the TX side does a qdisc_lookup they may be walking the RX list without any protection. Similarly, if somebody on the ingress side does qdisc_lookup they may walk the TX lists without protection. Cheers, -- Visit Openswan at http://www.openswan.org/ Email: Herbert Xu ~{PmV>HI~} [off-list ref] Home Page: http://gondor.apana.org.au/~herbert/ PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt