Re: ACPI lockdep warning on boot, 2.6.25-rc5

Rafael J. Wysocki
2008-03-19T20:52:17Z

On Wednesday, 19 of March 2008, Venki Pallipadi wrote:
> On Sat, Mar 15, 2008 at 02:16:11PM +0100, Pavel Machek wrote:
> > Hi!
> >
> > > @@ -421,7 +423,9 @@
> > > else
> > > acpi_safe_halt();
> > >
> > > - local_irq_enable();
> > > + if (irqs_disabled())
> > > + local_irq_enable();
> > > +
> > > return;
> > > }
> > >
> > > @@ -530,7 +534,9 @@
> > > * skew otherwise.
> > > */
> > > sleep_ticks = 0xFFFFFFFF;
> > > - local_irq_enable();
> > > + if (irqs_disabled())
> > > + local_irq_enable();
> > > +
> > > break;
> > >
> > > case ACPI_STATE_C2:
> >
> > That's pretty ugly. Could the code be modified to have interrupt
> > consistent at this point?
> >
>
> Agreed that this is not very clean. The problem is that we cannot be sure
> about the interrupt state at this point as the low level idle handlers at
> this point can come from variety of different places like safe_halt, arch
> dependent pm_idle code (which is different for (32 and 64 bit at this point)
> and also pm_idle can be somewhere outside the kernel in some module as it is
> a function pointer.

Well, I'd add a comment that this is to make lockdep happy. Otherwise it looks
bizarre.

Thanks,
Rafael