Messages in this thread | | | Date | Wed, 28 Apr 2010 17:12:06 +1000 | From | Stephen Rothwell <> | Subject | Re: [PATCH] lockdep: Fix redundant_hardirqs_on incremented with irqs enabled |
| |
Hi Frederic,
On Thu, 15 Apr 2010 15:37:50 +0200 Frederic Weisbecker <fweisbec@gmail.com> wrote: > > When a path restore the flags while irqs are already enabled, we > update the per cpu var redundant_hardirqs_on in a racy fashion > and debug_atomic_inc() warns about this situation. > > In this particular case, we need to explictly disable the irqs before > updating this stat var in order to update it safely. > > Reported-by: Stephen Rothwell <sfr@canb.auug.org.au> > Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com> > Cc: Peter Zijlstra <peterz@infradead.org> > Cc: David Miller <davem@davemloft.net> > Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org> > --- > kernel/lockdep.c | 4 ++++ > 1 files changed, 4 insertions(+), 0 deletions(-) > > diff --git a/kernel/lockdep.c b/kernel/lockdep.c > index 78325f8..65d4336 100644 > --- a/kernel/lockdep.c > +++ b/kernel/lockdep.c > @@ -2298,7 +2298,11 @@ void trace_hardirqs_on_caller(unsigned long ip) > return; > > if (unlikely(curr->hardirqs_enabled)) { > + unsigned long flags; > + > + raw_local_irq_save(flags); > debug_atomic_inc(redundant_hardirqs_on); > + raw_local_irq_restore(flags); > return; > } > /* we'll do an OFF -> ON transition: */
I applied this patch to linux-next today and it fixes my PowerPC boot problems, so I will keep it in linux-next until it gets applied to the tip tree or something better comes along.
Thanks. -- Cheers, Stephen Rothwell sfr@canb.auug.org.au http://www.canb.auug.org.au/~sfr/ [unhandled content-type:application/pgp-signature] | |