diff options
Diffstat (limited to 'arch/x86/include')
| -rw-r--r-- | arch/x86/include/asm/io_bitmap.h | 9 | ||||
| -rw-r--r-- | arch/x86/include/asm/paravirt.h | 7 | ||||
| -rw-r--r-- | arch/x86/include/asm/paravirt_types.h | 4 | 
3 files changed, 19 insertions, 1 deletions
| diff --git a/arch/x86/include/asm/io_bitmap.h b/arch/x86/include/asm/io_bitmap.h index 02c6ef8f7667..07344d82e88e 100644 --- a/arch/x86/include/asm/io_bitmap.h +++ b/arch/x86/include/asm/io_bitmap.h @@ -19,7 +19,14 @@ struct task_struct;  void io_bitmap_share(struct task_struct *tsk);  void io_bitmap_exit(void); -void tss_update_io_bitmap(void); +void native_tss_update_io_bitmap(void); + +#ifdef CONFIG_PARAVIRT_XXL +#include <asm/paravirt.h> +#else +#define tss_update_io_bitmap native_tss_update_io_bitmap +#endif +  #else  static inline void io_bitmap_share(struct task_struct *tsk) { }  static inline void io_bitmap_exit(void) { } diff --git a/arch/x86/include/asm/paravirt.h b/arch/x86/include/asm/paravirt.h index 86e7317eb31f..694d8daf4983 100644 --- a/arch/x86/include/asm/paravirt.h +++ b/arch/x86/include/asm/paravirt.h @@ -295,6 +295,13 @@ static inline void write_idt_entry(gate_desc *dt, int entry, const gate_desc *g)  	PVOP_VCALL3(cpu.write_idt_entry, dt, entry, g);  } +#ifdef CONFIG_X86_IOPL_IOPERM +static inline void tss_update_io_bitmap(void) +{ +	PVOP_VCALL0(cpu.update_io_bitmap); +} +#endif +  static inline void paravirt_activate_mm(struct mm_struct *prev,  					struct mm_struct *next)  { diff --git a/arch/x86/include/asm/paravirt_types.h b/arch/x86/include/asm/paravirt_types.h index 84812964d3dd..732f62e04ddb 100644 --- a/arch/x86/include/asm/paravirt_types.h +++ b/arch/x86/include/asm/paravirt_types.h @@ -140,6 +140,10 @@ struct pv_cpu_ops {  	void (*load_sp0)(unsigned long sp0); +#ifdef CONFIG_X86_IOPL_IOPERM +	void (*update_io_bitmap)(void); +#endif +  	void (*wbinvd)(void);  	/* cpuid emulation, mostly so that caps bits can be disabled */ |