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
| Eric W. Biederman | [PATCH 02/10] sysfs: Support for preventing unmounts. |
| Greg KH | [GIT PATCH] driver core patches against 2.6.24 |
| Bart Van Assche | Integration of SCST in the mainstream Linux kernel |
| david | Re: Dual-Licensing Linux Kernel with GPL V2 and GPL V3 |
git: | |
| Antonio Almeida | HTB accuracy for high speed |
| Jarek Poplawski | [PATCH] pkt_sched: Destroy gen estimators under rtnl_lock(). |
| Gerrit Renker | [PATCH 26/37] dccp: Integration of dynamic feature activation - part 1 (socket set... |
| David Miller | [GIT]: Networking |
