• Peter Zijlstra's avatar
    fix idle (arch, acpi and apm) and lockdep · 7f424a8b
    Peter Zijlstra authored
    OK, so 25-mm1 gave a lockdep error which made me look into this.
    
    The first thing that I noticed was the horrible mess; the second thing I
    saw was hacks like: 71e93d15
    
    The problem is that arch idle routines are somewhat inconsitent with
    their IRQ state handling and instead of fixing _that_, we go paper over
    the problem.
    
    So the thing I've tried to do is set a standard for idle routines and
    fix them all up to adhere to that. So the rules are:
    
      idle routines are entered with IRQs disabled
      idle routines will exit with IRQs enabled
    
    Nearly all already did this in one form or another.
    
    Merge the 32 and 64 bit bits so they no longer have different bugs.
    
    As for the actual lockdep warning; __sti_mwait() did a plainly un-annotated
    irq-enable.
    Signed-off-by: default avatarPeter Zijlstra <a.p.zijlstra@chello.nl>
    Tested-by: default avatarBob Copeland <me@bobcopeland.com>
    Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
    7f424a8b
processor_idle.c 47.9 KB