libxc: Expose the MPX cpuid flag to guest

If hardware support memory protect externsion, expose this feature
to guest by default. Users don't have to use a 'cpuid= ' option in
config file to turn it on.

Signed-off-by: Liang Li <liang.z.li@intel.com>
Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
This commit is contained in:
Liang Li authored and Ian Jackson committed 2016-03-01 18:02:10 +00:00
1 parent d84b8bf2e0
commit a4c2bd9f9e
2 files changed
+7

No files matched your search

+1
View File
@@ -137,6 +137,7 @@
#define X86_FEATURE_ERMS 9 /* Enhanced REP MOVSB/STOSB */
#define X86_FEATURE_INVPCID 10 /* Invalidate Process Context ID */
#define X86_FEATURE_RTM 11 /* Restricted Transactional Memory */
#define X86_FEATURE_MPX 14 /* Memory Protection Extensions */
#define X86_FEATURE_RDSEED 18 /* RDSEED instruction */
#define X86_FEATURE_ADX 19 /* ADCX, ADOX instructions */
#define X86_FEATURE_SMAP 20 /* Supervisor Mode Access Protection */
+6
View File
@@ -423,6 +423,8 @@ static void xc_cpuid_hvm_policy(xc_interface *xch,
bitmaskof(X86_FEATURE_ERMS) |
bitmaskof(X86_FEATURE_INVPCID) |
bitmaskof(X86_FEATURE_RTM) |
((info->xfeature_mask != 0) ?
bitmaskof(X86_FEATURE_MPX) : 0) |
bitmaskof(X86_FEATURE_RDSEED) |
bitmaskof(X86_FEATURE_ADX) |
bitmaskof(X86_FEATURE_SMAP) |
@@ -543,6 +545,7 @@ static void xc_cpuid_pv_policy(xc_interface *xch,
case 0x00000007:
if ( input[1] == 0 )
{
regs[1] &= (bitmaskof(X86_FEATURE_BMI1) |
bitmaskof(X86_FEATURE_HLE) |
bitmaskof(X86_FEATURE_AVX2) |
@@ -552,6 +555,9 @@ static void xc_cpuid_pv_policy(xc_interface *xch,
bitmaskof(X86_FEATURE_RDSEED) |
bitmaskof(X86_FEATURE_ADX) |
bitmaskof(X86_FEATURE_FSGSBASE));
if ( info->xfeature_mask == 0 )
clear_bit(X86_FEATURE_MPX, regs[1]);
}
else
regs[1] = 0;
regs[0] = regs[2] = regs[3] = 0;
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.