|
|
|
|
|
|
|
|
|
|
xen-changelog
[Xen-changelog] Support XENFEAT_supervisor_mode_kernel in x86/64 HYPERVI
# 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
|
<Prev in Thread] |
Current Thread |
[Next in Thread> |
- [Xen-changelog] Support XENFEAT_supervisor_mode_kernel in x86/64 HYPERVISOR_IRET macro,
Xen patchbot -unstable <=
|
|
|
|
|