aboutsummaryrefslogtreecommitdiffstats
path: root/net/sched/sch_drr.c
diff options
context:
space:
mode:
authorIngo Molnar <mingo@elte.hu>2009-03-30 17:53:32 -0400
committerIngo Molnar <mingo@elte.hu>2009-03-30 17:53:32 -0400
commit65fb0d23fcddd8697c871047b700c78817bdaa43 (patch)
tree119e6e5f276622c4c862f6c9b6d795264ba1603a /net/sched/sch_drr.c
parent8c083f081d0014057901c68a0a3e0f8ca7ac8d23 (diff)
parentdfbbe89e197a77f2c8046a51c74e33e35f878080 (diff)
Merge branch 'linus' into cpumask-for-linus
Conflicts: arch/x86/kernel/cpu/common.c
Diffstat (limited to 'net/sched/sch_drr.c')
-rw-r--r--net/sched/sch_drr.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/net/sched/sch_drr.c b/net/sched/sch_drr.c
index e36e94ab4e10..7597fe146866 100644
--- a/net/sched/sch_drr.c
+++ b/net/sched/sch_drr.c
@@ -155,8 +155,11 @@ static int drr_delete_class(struct Qdisc *sch, unsigned long arg)
155 drr_purge_queue(cl); 155 drr_purge_queue(cl);
156 qdisc_class_hash_remove(&q->clhash, &cl->common); 156 qdisc_class_hash_remove(&q->clhash, &cl->common);
157 157
158 if (--cl->refcnt == 0) 158 BUG_ON(--cl->refcnt == 0);
159 drr_destroy_class(sch, cl); 159 /*
160 * This shouldn't happen: we "hold" one cops->get() when called
161 * from tc_ctl_tclass; the destroy method is done from cops->put().
162 */
160 163
161 sch_tree_unlock(sch); 164 sch_tree_unlock(sch);
162 return 0; 165 return 0;