From 4887c7eb03d842dfdce438df49aa2baebae5db43 Mon Sep 17 00:00:00 2001 From: Marc Fiuczynski Date: Thu, 26 May 2005 20:06:25 +0000 Subject: [PATCH] bug fix --- kernel/ckrm/ckrm_numtasks.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/kernel/ckrm/ckrm_numtasks.c b/kernel/ckrm/ckrm_numtasks.c index c0583055d..f3c94d5f6 100644 --- a/kernel/ckrm/ckrm_numtasks.c +++ b/kernel/ckrm/ckrm_numtasks.c @@ -304,10 +304,13 @@ recalc_and_propagate(struct ckrm_numtasks * res, struct ckrm_numtasks * parres) ckrm_lock_hier(res->core); while ((child = ckrm_get_next_child(res->core, child)) != NULL) { childres = ckrm_get_res_class(child, resid, struct ckrm_numtasks); - - spin_lock(&childres->cnt_lock); - recalc_and_propagate(childres, res); - spin_unlock(&childres->cnt_lock); + if (childres) { + spin_lock(&childres->cnt_lock); + recalc_and_propagate(childres, res); + spin_unlock(&childres->cnt_lock); + } else { + printk(KERN_ERR "%s: numtasks resclass missing\n",__FUNCTION__); + } } ckrm_unlock_hier(res->core); return; @@ -324,7 +327,7 @@ static int numtasks_set_share_values(void *my_res, struct ckrm_shares *new) if (res->parent) { parres = - ckrm_get_res_class(res->parent, resid, struct ckrm_numtasks); + ckrm_get_res_class(res->parent, resid, struct ckrm_numtasks); spin_lock(&parres->cnt_lock); spin_lock(&res->cnt_lock); par = &parres->shares; -- 2.45.2