On Thu, Aug 21, 2008 at 09:26:09PM +1000, Herbert Xu wrote:
Sure, here is a scenario:
cpu1 cpu2
rtnl_lock()
qdisc_graft()
// parent != NULL
->cops-graft()
notify_and_destroy() qdisc_run()
spin_lock(root_lock)
qdisc_destroy(old) dequeue_skb()
tbf_dequeue()
qdisc_tree_decrease_qlen()
qdisc_lookup()
//deleting from qdisc_sleeping->list //walking qdisc_sleeping->list
//under rtnl_lock() only //under qdisc root_lock only
list_del(qdisc->list) list_for_each_entry(txq_root)
Jarek P.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html