WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

[Xen-devel] [Patch] Disallow SMEP for PV guest

To: "xen-devel@xxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxx>
Subject: [Xen-devel] [Patch] Disallow SMEP for PV guest
From: "Yang, Wei Y" <wei.y.yang@xxxxxxxxx>
Date: Wed, 1 Jun 2011 22:31:12 +0800
Accept-language: en-US
Acceptlanguage: en-US
Delivery-date: Wed, 01 Jun 2011 07:35:05 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
Thread-index: AcwgaI6KlQDokISXR8290J+sxbx6CA==
Thread-topic: [Patch] Disallow SMEP for PV guest
This patch disallows SMEP for PV guest.

 Signed-off-by: Yang, Wei <wei.y.yang@xxxxxxxxx>
 Signed-off-by: Shan, Haitao <haitao.shan@xxxxxxxxx>
 Signed-off-by: Li, Xin <xin.li@xxxxxxxxx>

---
 xc_cpufeature.h |    3 +++
 xc_cpuid_x86.c  |    5 +++++
 2 files changed, 8 insertions(+)

diff -r 6f72160d2d55 tools/libxc/xc_cpufeature.h
--- a/tools/libxc/xc_cpufeature.h       Wed Jun 01 19:57:32 2011 +0800
+++ b/tools/libxc/xc_cpufeature.h       Wed Jun 01 22:21:33 2011 +0800
@@ -141,4 +141,7 @@
 #define X86_FEATURE_TBM         (6*32+21) /* trailing bit manipulations */
 #define X86_FEATURE_TOPOEXT     (6*32+22) /* topology extensions CPUID leafs */
 
+/* Intel-defined CPU features, CPUID level 0x00000007:0 (ebx), word 7 */
+#define X86_FEATURE_SMEP       (7*32+ 7) /* Supervisor Mode Execution 
Protection */
+
 #endif /* __LIBXC_CPUFEATURE_H */
diff -r 6f72160d2d55 tools/libxc/xc_cpuid_x86.c
--- a/tools/libxc/xc_cpuid_x86.c        Wed Jun 01 19:57:32 2011 +0800
+++ b/tools/libxc/xc_cpuid_x86.c        Wed Jun 01 22:21:33 2011 +0800
@@ -470,6 +470,11 @@
         xc_cpuid_config_xsave(xch, domid, xfeature_mask, input, regs);
         break;
 
+    case 7:
+        if ( input[1] == 0 )
+            clear_bit(X86_FEATURE_SMEP, regs[1]);
+        break;
+
     case 0x80000001:
         if ( !guest_64bit )
         {

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