From 17838e7922858fd31e92a0c03d723952c49d31ee Mon Sep 17 00:00:00 2001 From: Andy Bavier Date: Thu, 24 Feb 2005 14:34:07 +0000 Subject: [PATCH] Remove freed class from any classqueues [PL #4233] --- kernel/ckrm/ckrm_cpu_class.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/kernel/ckrm/ckrm_cpu_class.c b/kernel/ckrm/ckrm_cpu_class.c index 917875b18..e6ba36622 100644 --- a/kernel/ckrm/ckrm_cpu_class.c +++ b/kernel/ckrm/ckrm_cpu_class.c @@ -145,6 +145,8 @@ static void ckrm_free_cpu_class(void *my_res) struct ckrm_cpu_class *cls = my_res, *parres, *childres; ckrm_core_class_t *child = NULL; int maxlimit; + ckrm_lrq_t* queue; + int i; if (!cls) return; @@ -152,6 +154,15 @@ static void ckrm_free_cpu_class(void *my_res) /*the default class can't be freed*/ if (cls == get_default_cpu_class()) return; +#if 1 +#warning "ACB: Remove freed class from any classqueues [PL #4233]" + for (i = 0 ; i < NR_CPUS ; i++) { + queue = &cls->local_queues[i]; + if (cls_in_classqueue(&queue->classqueue_linkobj)) + classqueue_dequeue(queue->classqueue, + &queue->classqueue_linkobj); + } +#endif // Assuming there will be no children when this function is called parres = ckrm_get_cpu_class(cls->parent); -- 2.47.0