[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] Support XENFEAT_supervisor_mode_kernel in x86/64 HYPERVISOR_IRET macro
# HG changeset patch # User Ian.Campbell@xxxxxxxxxxxxx # Node ID c823e60207f0c1f54f7d9a8456a33d32e1e48b89 # Parent f1e5b29dd15a18182ee08c3bd37e3a765d65a33a Support XENFEAT_supervisor_mode_kernel in x86/64 HYPERVISOR_IRET macro Signed-off-by: Ian Campbell <ian.campbell@xxxxxxxxxxxxx> diff -r f1e5b29dd15a -r c823e60207f0 linux-2.6-xen-sparse/arch/x86_64/kernel/entry-xen.S --- a/linux-2.6-xen-sparse/arch/x86_64/kernel/entry-xen.S Mon Feb 27 10:55:13 2006 +++ b/linux-2.6-xen-sparse/arch/x86_64/kernel/entry-xen.S Mon Feb 27 10:58:17 2006 @@ -51,6 +51,7 @@ #include <asm/page.h> #include <asm/errno.h> #include <xen/interface/arch-x86_64.h> +#include <xen/interface/features.h> #include "irq_vectors.h" @@ -146,16 +147,19 @@ */ .macro HYPERVISOR_IRET flag testb $3,1*8(%rsp) - jnz 1f + jnz 2f testl $NMI_MASK,2*8(%rsp) + jnz 2f + + testb $1,(xen_features+XENFEAT_supervisor_mode_kernel) jnz 1f /* Direct iret to kernel space. Correct CS and SS. */ orb $3,1*8(%rsp) orb $3,4*8(%rsp) - iretq - -1: /* Slow iret via hypervisor. */ +1: iretq + +2: /* Slow iret via hypervisor. */ andl $~NMI_MASK, 16(%rsp) pushq $\flag jmp hypercall_page + (__HYPERVISOR_iret * 32) _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |