diff options
Diffstat (limited to 'include/asm-i386/processor.h')
-rw-r--r-- | include/asm-i386/processor.h | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/include/asm-i386/processor.h b/include/asm-i386/processor.h index 98fa73b71760..6c2c4457be0a 100644 --- a/include/asm-i386/processor.h +++ b/include/asm-i386/processor.h | |||
@@ -144,8 +144,8 @@ static inline void detect_ht(struct cpuinfo_x86 *c) {} | |||
144 | #define X86_EFLAGS_VIP 0x00100000 /* Virtual Interrupt Pending */ | 144 | #define X86_EFLAGS_VIP 0x00100000 /* Virtual Interrupt Pending */ |
145 | #define X86_EFLAGS_ID 0x00200000 /* CPUID detection flag */ | 145 | #define X86_EFLAGS_ID 0x00200000 /* CPUID detection flag */ |
146 | 146 | ||
147 | static inline void __cpuid(unsigned int *eax, unsigned int *ebx, | 147 | static inline fastcall void native_cpuid(unsigned int *eax, unsigned int *ebx, |
148 | unsigned int *ecx, unsigned int *edx) | 148 | unsigned int *ecx, unsigned int *edx) |
149 | { | 149 | { |
150 | /* ecx is often an input as well as an output. */ | 150 | /* ecx is often an input as well as an output. */ |
151 | __asm__("cpuid" | 151 | __asm__("cpuid" |
@@ -491,6 +491,12 @@ struct thread_struct { | |||
491 | .io_bitmap = { [ 0 ... IO_BITMAP_LONGS] = ~0 }, \ | 491 | .io_bitmap = { [ 0 ... IO_BITMAP_LONGS] = ~0 }, \ |
492 | } | 492 | } |
493 | 493 | ||
494 | #ifdef CONFIG_PARAVIRT | ||
495 | #include <asm/paravirt.h> | ||
496 | #else | ||
497 | #define paravirt_enabled() 0 | ||
498 | #define __cpuid native_cpuid | ||
499 | |||
494 | static inline void load_esp0(struct tss_struct *tss, struct thread_struct *thread) | 500 | static inline void load_esp0(struct tss_struct *tss, struct thread_struct *thread) |
495 | { | 501 | { |
496 | tss->esp0 = thread->esp0; | 502 | tss->esp0 = thread->esp0; |
@@ -524,10 +530,13 @@ static inline void load_esp0(struct tss_struct *tss, struct thread_struct *threa | |||
524 | : /* no output */ \ | 530 | : /* no output */ \ |
525 | :"r" (value)) | 531 | :"r" (value)) |
526 | 532 | ||
533 | #define set_iopl_mask native_set_iopl_mask | ||
534 | #endif /* CONFIG_PARAVIRT */ | ||
535 | |||
527 | /* | 536 | /* |
528 | * Set IOPL bits in EFLAGS from given mask | 537 | * Set IOPL bits in EFLAGS from given mask |
529 | */ | 538 | */ |
530 | static inline void set_iopl_mask(unsigned mask) | 539 | static fastcall inline void native_set_iopl_mask(unsigned mask) |
531 | { | 540 | { |
532 | unsigned int reg; | 541 | unsigned int reg; |
533 | __asm__ __volatile__ ("pushfl;" | 542 | __asm__ __volatile__ ("pushfl;" |