On Thu, 2007-02-08 at 14:14 +0100, Johannes Berg wrote: > On Wed, 2007-02-07 at 13:45 +0100, Johannes Berg wrote: > > > Except for the in-irq count hack I'm happy with this. I still haven't found > > where the in-hard-irq count is set to 1 in the down path during suspend or > > resume and other platforms do similar things so I'm inclined to leave this. > > Um, ok, so the hack breaks platforms that don't have paca, e.g. chrp32. > > Also, I finally figured out how the in-hard-irq count happens. The thing > is that when I try to turn off the CPU it actually doesn't really turn > off of course, so it ends up doing NAP and taking timer interrupts... > which goes irq_enter() and we happen to kill it afterwards. > > I have two ways of fixing this: > - just ignore it as we do now > - insert a "if (cpu_dead) return" into the timer interrupt function > > I prefer the latter because then we're guaranteed that whatever the > timer interrupt does we don't modify any state for/by the CPU that isn't > supposed to exist. Or we can just mark interrupts as soft-disabled ? Ben.