Messages in this thread | | | Date | Wed, 17 Jun 2009 18:37:23 +0200 | From | Ingo Molnar <> | Subject | Re: [PATCH 1/1] scheduler: access to variable out of scope in sched_slice() |
| |
* Christian Engelmayer <christian.engelmayer@frequentis.com> wrote:
> From: Christian Engelmayer <christian.engelmayer@frequentis.com> > > 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. > > Signed-off-by: Christian Engelmayer <christian.engelmayer@frequentis.com> > -- > Reported by static code analysis. > > --- linux-2.6.30/kernel/sched_fair.c.orig 2009-06-16 10:01:50.000000000 +0200 > +++ linux-2.6.30/kernel/sched_fair.c 2009-06-16 10:02:39.000000000 +0200 > @@ -430,12 +430,13 @@ static u64 sched_slice(struct cfs_rq *cf > > 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;
Good one!
I suspect it doesnt matter in practice because GCC will just have them all on the same stack frame?
Ingo
| |