From: Jarek Poplawski <jarkao2@gmail.com> Date: Mon, 18 Aug 2008 22:12:36 +0200It sounds good in theory, but you cannot make this place be netdev_queue, because multiple netdev_queue objects can point to the same qdisc. That's why the lock isn't in netdev_queue any more, there is no longer a 1 to 1 relationship. Yep, and that's the lock debugging thing which is triggering now. Likely what I'll do is simply reinstate RCU but only for the freeing of the memory, nothing more. This keeps everything doing destruction under RTNL as desired, yet fixes the "we're holding lock that's being freed" problem. If RTNL is held, we must be saving the correct lock. Root qdisc and other aspects of qdisc configuration cannot be changing when RTNL is held. That is why I put RTNL assertion in qdisc_root_lock() as this is the only valid situation where it may be used. -------------------- sch_generic.h -------------------- static inline spinlock_t *qdisc_root_lock(struct Qdisc *qdisc) { struct Qdisc *root = qdisc_root(qdisc); ASSERT_RTNL(); return qdisc_lock(root); } -- 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
| Tarkan Erimer | Re: Dual-Licensing Linux Kernel with GPL V2 and GPL V3 |
| Greg Kroah-Hartman | [PATCH 005/196] Chinese: add translation of SubmittingDrivers |
| Kamalesh Babulal | [BUILD-FAILURE] 2.6.26-rc8-mm1 - build failure at drivers/char/hvc_rtas.c |
| Luciano Rocha | usb hdd problems with 2.6.27.2 |
| David Miller | Re: [PATCH] pkt_sched: Destroy gen estimators under rtnl_lock(). |
| Arjan van de Ven | Re: [GIT]: Networking |
| Christoph Lameter | Network latency regressions from 2.6.22 to 2.6.29 |
| Gerrit Renker | [PATCH 15/37] dccp: Set per-connection CCIDs via socket options |
git: | |
