[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-changelog] [xen-unstable] svm: Enable nested paging only on x86/64.



# HG changeset patch
# User Keir Fraser <keir@xxxxxxxxxxxxx>
# Date 1191486978 -3600
# Node ID c632def5f69b350b967c5f03250d25919c6a15ea
# Parent  ca1085e8ab82d33bffb01a1a0fa9d507bbcff5f1
svm: Enable nested paging only on x86/64.
Signed-off-by: Keir Fraser <keir@xxxxxxxxxxxxx>
---
 xen/arch/x86/hvm/svm/svm.c |   19 ++++++++-----------
 1 files changed, 8 insertions(+), 11 deletions(-)

diff -r ca1085e8ab82 -r c632def5f69b xen/arch/x86/hvm/svm/svm.c
--- a/xen/arch/x86/hvm/svm/svm.c        Wed Oct 03 16:33:23 2007 +0100
+++ b/xen/arch/x86/hvm/svm/svm.c        Thu Oct 04 09:36:18 2007 +0100
@@ -885,16 +885,6 @@ static struct hvm_function_table svm_fun
     .event_pending        = svm_event_pending
 };
 
-static int svm_npt_detect(void)
-{
-    u32 eax, ebx, ecx, edx;
-
-    /* Check CPUID for nested paging support. */
-    cpuid(0x8000000A, &eax, &ebx, &ecx, &edx);
-
-    return (edx & 1);
-}
-
 int start_svm(struct cpuinfo_x86 *c)
 {
     u32 eax, ecx, edx;
@@ -937,7 +927,14 @@ int start_svm(struct cpuinfo_x86 *c)
 
     setup_vmcb_dump();
 
-    svm_function_table.hap_supported = svm_npt_detect();
+#ifdef __x86_64__
+    /*
+     * Check CPUID for nested paging support. We support NPT only on 64-bit
+     * hosts since the phys-to-machine table is in host format. Hence 32-bit
+     * Xen could only support guests using NPT with up to a 4GB memory map.
+     */
+    svm_function_table.hap_supported = (cpuid_edx(0x8000000A) & 1);
+#endif
 
     hvm_enable(&svm_function_table);
 

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.