This patch turns the irq_flags and halt routines into the native versions. Signed-off-by: Glauber de Oliveira Costa <gcosta@xxxxxxxxxx> Signed-off-by: Steven Rostedt <rostedt@xxxxxxxxxxx> --- include/asm-x86_64/irqflags.h | 32 +++++++++++++++++++++++++++----- 1 files changed, 27 insertions(+), 5 deletions(-) diff --git a/include/asm-x86_64/irqflags.h b/include/asm-x86_64/irqflags.h index 86e70fe..4ba5241 100644 --- a/include/asm-x86_64/irqflags.h +++ b/include/asm-x86_64/irqflags.h @@ -16,6 +16,22 @@ * Interrupt control: */ +#ifdef CONFIG_PARAVIRT +#include <asm/paravirt.h> +# ifdef CONFIG_X86_VSMP +static inline int raw_irqs_disabled_flags(unsigned long flags) +{ + return !(flags & X86_EFLAGS_IF) || (flags & X86_EFLAGS_AC); +} +# else +static inline int raw_irqs_disabled_flags(unsigned long flags) +{ + return !(flags & X86_EFLAGS_IF); +} +# endif + +#else /* PARAVIRT */ + static inline unsigned long __raw_local_save_flags(void) { unsigned long flags; @@ -31,9 +47,6 @@ static inline unsigned long __raw_local_save_flags(void) return flags; } -#define raw_local_save_flags(flags) \ - do { (flags) = __raw_local_save_flags(); } while (0) - static inline void raw_local_irq_restore(unsigned long flags) { __asm__ __volatile__( @@ -88,6 +101,10 @@ static inline int raw_irqs_disabled_flags(unsigned long flags) #endif +#endif /* CONFIG_PARAVIRT */ + +#define raw_local_save_flags(flags) \ + do { (flags) = __raw_local_save_flags(); } while (0) /* * For spinlocks, etc.: */ @@ -115,7 +132,7 @@ static inline int raw_irqs_disabled(void) * Used in the idle loop; sti takes one instruction cycle * to complete: */ -static inline void raw_safe_halt(void) +static inline void native_raw_safe_halt(void) { __asm__ __volatile__("sti; hlt" : : : "memory"); } @@ -124,11 +141,16 @@ static inline void raw_safe_halt(void) * Used when interrupts are already enabled or to * shutdown the processor: */ -static inline void halt(void) +static inline void native_halt(void) { __asm__ __volatile__("hlt": : :"memory"); } +#ifndef CONFIG_PARAVIRT +#define raw_safe_halt native_raw_safe_halt +#define halt native_halt +#endif /* ! CONFIG_PARAVIRT */ + #else /* __ASSEMBLY__: */ # ifdef CONFIG_TRACE_IRQFLAGS # define TRACE_IRQS_ON call trace_hardirqs_on_thunk -- 1.4.4.2 _______________________________________________ Virtualization mailing list Virtualization@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linux-foundation.org/mailman/listinfo/virtualization