diff options
Diffstat (limited to 'arch/x86/include/asm/xen')
| -rw-r--r-- | arch/x86/include/asm/xen/hypercall.h | 25 | 
1 files changed, 19 insertions, 6 deletions
| diff --git a/arch/x86/include/asm/xen/hypercall.h b/arch/x86/include/asm/xen/hypercall.h index bfd882617613..6b2f90a0b149 100644 --- a/arch/x86/include/asm/xen/hypercall.h +++ b/arch/x86/include/asm/xen/hypercall.h @@ -209,24 +209,37 @@ extern struct { char _entry[32]; } hypercall_page[];  })  static inline long -privcmd_call(unsigned call, -	     unsigned long a1, unsigned long a2, -	     unsigned long a3, unsigned long a4, -	     unsigned long a5) +xen_single_call(unsigned int call, +		unsigned long a1, unsigned long a2, +		unsigned long a3, unsigned long a4, +		unsigned long a5)  {  	__HYPERCALL_DECLS;  	__HYPERCALL_5ARG(a1, a2, a3, a4, a5); -	stac();  	asm volatile(CALL_NOSPEC  		     : __HYPERCALL_5PARAM  		     : [thunk_target] "a" (&hypercall_page[call])  		     : __HYPERCALL_CLOBBER5); -	clac();  	return (long)__res;  } +static inline long +privcmd_call(unsigned int call, +	     unsigned long a1, unsigned long a2, +	     unsigned long a3, unsigned long a4, +	     unsigned long a5) +{ +	long res; + +	stac(); +	res = xen_single_call(call, a1, a2, a3, a4, a5); +	clac(); + +	return res; +} +  static inline int  HYPERVISOR_set_trap_table(struct trap_info *table)  { |