mirror of
https://github.com/xen-project/xen.git
synced 2026-10-28 02:01:24 +01:00
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:
1 parent
d84b8bf2e0
commit
a4c2bd9f9e
2 files changed
+7
No files matched your search
@@ -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 */
|
||||
|
||||
@@ -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;
|
||||
|
||||