diff options
author | Christian Engelmayer <christian.engelmayer@frequentis.com> | 2009-06-16 10:35:12 +0200 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2009-06-17 18:37:54 +0200 |
commit | 3104bf03a923c72043a9c5009d9cd56724304916 (patch) | |
tree | c65dbf477871ea843241055cda84b2448aee0c71 /kernel/sched_fair.c | |
parent | 348ec61e6268c3cd7ee75cfa50e408184a941506 (diff) | |
download | linux-3104bf03a923c72043a9c5009d9cd56724304916.tar.gz linux-3104bf03a923c72043a9c5009d9cd56724304916.tar.bz2 linux-3104bf03a923c72043a9c5009d9cd56724304916.zip |
sched: Fix out of scope variable access in sched_slice()
Access to local variable lw is aliased by usage of pointer load.
Access to pointer load in calc_delta_mine() happens when lw is
already out of scope.
[ Reported by static code analysis. ]
Signed-off-by: Christian Engelmayer <christian.engelmayer@frequentis.com>
LKML-Reference: <20090616103512.0c846e51@frequentis.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'kernel/sched_fair.c')
-rw-r--r-- | kernel/sched_fair.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/kernel/sched_fair.c b/kernel/sched_fair.c index 5f9650e8fe75..ba7fd6e9556f 100644 --- a/kernel/sched_fair.c +++ b/kernel/sched_fair.c @@ -430,12 +430,13 @@ static u64 sched_slice(struct cfs_rq *cfs_rq, struct sched_entity *se) for_each_sched_entity(se) { struct load_weight *load; + struct load_weight lw; cfs_rq = cfs_rq_of(se); load = &cfs_rq->load; if (unlikely(!se->on_rq)) { - struct load_weight lw = cfs_rq->load; + lw = cfs_rq->load; update_load_add(&lw, se->load.weight); load = &lw; |