mirror of https://github.com/OpenIPC/firmware.git
38 lines
1.1 KiB
Diff
38 lines
1.1 KiB
Diff
diff -drupN a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
|
|
--- a/arch/x86/kvm/x86.c 2018-08-06 17:23:04.000000000 +0300
|
|
+++ b/arch/x86/kvm/x86.c 2022-06-12 05:28:14.000000000 +0300
|
|
@@ -1002,7 +1002,6 @@ static u32 emulated_msrs[] = {
|
|
MSR_IA32_MCG_CTL,
|
|
MSR_IA32_MCG_EXT_CTL,
|
|
MSR_IA32_SMBASE,
|
|
- MSR_AMD64_VIRT_SPEC_CTRL,
|
|
};
|
|
|
|
static unsigned num_emulated_msrs;
|
|
@@ -2665,7 +2664,7 @@ int kvm_vm_ioctl_check_extension(struct
|
|
* fringe case that is not enabled except via specific settings
|
|
* of the module parameters.
|
|
*/
|
|
- r = kvm_x86_ops->has_emulated_msr(MSR_IA32_SMBASE);
|
|
+ r = kvm_x86_ops->cpu_has_high_real_mode_segbase();
|
|
break;
|
|
case KVM_CAP_COALESCED_MMIO:
|
|
r = KVM_COALESCED_MMIO_PAGE_OFFSET;
|
|
@@ -4228,8 +4227,14 @@ static void kvm_init_msr_list(void)
|
|
num_msrs_to_save = j;
|
|
|
|
for (i = j = 0; i < ARRAY_SIZE(emulated_msrs); i++) {
|
|
- if (!kvm_x86_ops->has_emulated_msr(emulated_msrs[i]))
|
|
- continue;
|
|
+ switch (emulated_msrs[i]) {
|
|
+ case MSR_IA32_SMBASE:
|
|
+ if (!kvm_x86_ops->cpu_has_high_real_mode_segbase())
|
|
+ continue;
|
|
+ break;
|
|
+ default:
|
|
+ break;
|
|
+ }
|
|
|
|
if (j < i)
|
|
emulated_msrs[j] = emulated_msrs[i];
|