Skip to content
  • Cliff Wickman's avatar
    x86, paravirt: Use native_halt on a halt, not native_safe_halt · c8217b83
    Cliff Wickman authored
    
    
    halt() should use native_halt()
    safe_halt() uses native_safe_halt()
    
    If CONFIG_PARAVIRT=y, halt() is defined in arch/x86/include/asm/paravirt.h as
    
    static inline void halt(void)
    {
            PVOP_VCALL0(pv_irq_ops.safe_halt);
    }
    
    Otherwise (no CONFIG_PARAVIRT) halt() in arch/x86/include/asm/irqflags.h is
    
    static inline void halt(void)
    {
            native_halt();
    }
    
    So it looks to me like the CONFIG_PARAVIRT case of using native_safe_halt()
    for a halt() is an oversight.
    Am I missing something?
    
    It probably hasn't shown up as a problem because the local apic is disabled
    on a shutdown or restart.  But if we disable interrupts and call halt()
    we shouldn't expect that the halt() will re-enable interrupts.
    
    Signed-off-by: default avatarCliff Wickman <cpw@sgi.com>
    LKML-Reference: <E1PSBcz-0001g1-FM@eag09.americas.sgi.com>
    Signed-off-by: default avatarH. Peter Anvin <hpa@linux.intel.com>
    c8217b83