ia64/xen-unstable

changeset 8653:63d9f45b271d

Fix 64-bit build and fix the transfer-page code for the
iret hypercall.

Signed-off-by: Keir Fraser <keir@xensource.com>
author kaf24@firebug.cl.cam.ac.uk
date Wed Jan 25 11:08:33 2006 +0100 (2006-01-25)
parents 2b4b1963b76e
children 806dfeb03d92
files linux-2.6-xen-sparse/include/asm-xen/asm-i386/hypercall.h linux-2.6-xen-sparse/include/asm-xen/asm-x86_64/hypercall.h xen/arch/x86/x86_64/traps.c
line diff
     1.1 --- a/linux-2.6-xen-sparse/include/asm-xen/asm-i386/hypercall.h	Tue Jan 24 18:08:11 2006 +0100
     1.2 +++ b/linux-2.6-xen-sparse/include/asm-xen/asm-i386/hypercall.h	Wed Jan 25 11:08:33 2006 +0100
     1.3 @@ -43,6 +43,7 @@
     1.4  	asm volatile (				\
     1.5  		"call hypercall_page + ("STR(__HYPERVISOR_##name)" * 32)"\
     1.6  		: "=a" (__res)			\
     1.7 +		:				\
     1.8  		: "memory" );			\
     1.9  	(type)__res;				\
    1.10  })
     2.1 --- a/linux-2.6-xen-sparse/include/asm-xen/asm-x86_64/hypercall.h	Tue Jan 24 18:08:11 2006 +0100
     2.2 +++ b/linux-2.6-xen-sparse/include/asm-xen/asm-x86_64/hypercall.h	Wed Jan 25 11:08:33 2006 +0100
     2.3 @@ -46,6 +46,7 @@
     2.4  	asm volatile (				\
     2.5  		"call hypercall_page + ("STR(__HYPERVISOR_##name)" * 32)"\
     2.6  		: "=a" (__res)			\
     2.7 +		:				\
     2.8  		: "memory" );			\
     2.9  	(type)__res;				\
    2.10  })
    2.11 @@ -287,12 +288,6 @@ HYPERVISOR_vcpu_op(
    2.12  }
    2.13  
    2.14  static inline int
    2.15 -HYPERVISOR_iret(void)
    2.16 -{
    2.17 -	return _hypercall0(int, iret);
    2.18 -}
    2.19 -
    2.20 -static inline int
    2.21  HYPERVISOR_set_segment_base(
    2.22  	int reg, unsigned long value)
    2.23  {
     3.1 --- a/xen/arch/x86/x86_64/traps.c	Tue Jan 24 18:08:11 2006 +0100
     3.2 +++ b/xen/arch/x86/x86_64/traps.c	Wed Jan 25 11:08:33 2006 +0100
     3.3 @@ -293,9 +293,9 @@ void hypercall_page_initialise(void *hyp
     3.4       * calling it.
     3.5       */
     3.6      p = (char *)(hypercall_page + (__HYPERVISOR_iret * 32));
     3.7 -    *(u8  *)(p+ 0) = 0x50;    /* push %rax */
     3.8 -    *(u8  *)(p+ 1) = 0x51;    /* push %rcx */
     3.9 -    *(u16 *)(p+ 2) = 0x5341;  /* push %r11 */
    3.10 +    *(u8  *)(p+ 0) = 0x51;    /* push %rcx */
    3.11 +    *(u16 *)(p+ 1) = 0x5341;  /* push %r11 */
    3.12 +    *(u8  *)(p+ 3) = 0x50;    /* push %rax */
    3.13      *(u8  *)(p+ 4) = 0xb8;    /* mov  $__HYPERVISOR_iret,%eax */
    3.14      *(u32 *)(p+ 5) = __HYPERVISOR_iret;
    3.15      *(u16 *)(p+ 9) = 0x050f;  /* syscall */