|
|
|
|
|
|
|
|
|
|
xen-devel
[Xen-devel] [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
|
|
|
|
|