Re: [PATCH] pkt_sched: Destroy gen estimators under rtnl_lock().
From: Jarek Poplawski <hidden>
Date: 2008-08-21 10:18:37
From: Jarek Poplawski <hidden>
Date: 2008-08-21 10:18:37
On Thu, Aug 21, 2008 at 10:11:45AM +0000, Jarek Poplawski wrote:
On Thu, Aug 21, 2008 at 03:05:23AM -0700, David Miller wrote:quoted
From: Jarek Poplawski <redacted> Date: Thu, 21 Aug 2008 10:01:55 +0000quoted
If we do this with child qdisc from qdisc_graft() it's without deactivation. The rest of the tree can be dequeued in the meantime and call qdisc_tree_decrease_qlen() (like hfsc, tbf, netem), which uses qdisc_lookup() to access this list. We list_del() under rtnl lock only, they lookup under sch_tree_lock(). Is it a bit unsafe or I miss something?They hold RTNL as well. Remember, sch_tree_lock() uses qdisc_root_lock() which as I've told you at least twice now asserts that RTNL is held :-)Actually, I've called it wrong, they hold qdisc root lock, but they certainly can't have rtnl_lock() at the moment!
I mean here: hfsc_dequeue(), netem_dequeue() and tbf_dequeue(). Jarek P.