On Mon, Aug 11, 2008 at 11:42:39PM +0200, Jarek Poplawski wrote:...Or instead of this: -------------> (alternative version) pkt_sched: Move qdisc_put_stab() from BH context. Since qdisc_stab_lock is used in qdisc_put_stab(), which is called in BH context from __qdisc_destroy() RCU callback, softirq safe locking should be used. Alternatively we can move this to qdisc_destroy(). Signed-off-by: Jarek Poplawski <jarkao2@gmail.com> --- (Apply on top of: pkt_sched: Destroy gen estimator under rtnl_lock().) diff -Nurp a/net/sched/sch_generic.c b/net/sched/sch_generic.c --- a/net/sched/sch_generic.c 2008-08-12 00:04:22.000000000 +0200 +++ b/net/sched/sch_generic.c 2008-08-12 00:08:24.000000000 +0200 @@ -525,9 +525,6 @@ static void __qdisc_destroy(struct rcu_h { struct Qdisc *qdisc = container_of(head, struct Qdisc, q_rcu); -#ifdef CONFIG_NET_SCHED - qdisc_put_stab(qdisc->stab); -#endif dev_put(qdisc_dev(qdisc)); kfree_skb(qdisc->gso_skb); @@ -548,6 +545,9 @@ void qdisc_destroy(struct Qdisc *qdisc) if (qdisc->parent) list_del(&qdisc->list); +#ifdef CONFIG_NET_SCHED + qdisc_put_stab(qdisc->stab); +#endif gen_kill_estimator(&qdisc->bstats, &qdisc->rate_est); if (ops->reset) ops->reset(qdisc); -- 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
| Jon Smirl | 463 kernel developers missing! |
| Nigel Cunningham | Re: [PATCH] Remove process freezer from suspend to RAM pathway |
| Greg KH | Re: [malware-list] [RFC 0/5] [TALPA] Intro to a linux interface for on access scan... |
| Jeff Garzik | Re: Linux 2.6.23-rc9 and a heads-up for the 2.6.24 series.. |
git: | |
| Jarek Poplawski | [PATCH] pkt_sched: Destroy gen estimators under rtnl_lock(). |
| Gerrit Renker | [PATCH 27/37] dccp: Integration of dynamic feature activation - part 2 (server side) |
| Linus Torvalds | Re: [GIT]: Networking |
| Evgeniy Polyakov | Re: [BUG] New Kernel Bugs |
