update submodule and patches to Ubuntu-4.15.0-63.72
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
This commit is contained in:
parent
6e9b6a3eae
commit
5aa9d0068e
@ -55,10 +55,10 @@ Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
|
||||
2 files changed, 110 insertions(+)
|
||||
|
||||
diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt
|
||||
index e399c26b180e..3a46193323f6 100644
|
||||
index 4286db7d9d51..663430a3e415 100644
|
||||
--- a/Documentation/admin-guide/kernel-parameters.txt
|
||||
+++ b/Documentation/admin-guide/kernel-parameters.txt
|
||||
@@ -3135,6 +3135,15 @@
|
||||
@@ -3138,6 +3138,15 @@
|
||||
Also, it enforces the PCI Local Bus spec
|
||||
rule that those bits should be 0 in system reset
|
||||
events (useful for kexec/kdump cases).
|
||||
@ -75,10 +75,10 @@ index e399c26b180e..3a46193323f6 100644
|
||||
Safety option to keep boot IRQs enabled. This
|
||||
should never be necessary.
|
||||
diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
|
||||
index 60d62a5f9e05..b112d494e51b 100644
|
||||
index 23d7fa167a36..59d361f70ab9 100644
|
||||
--- a/drivers/pci/quirks.c
|
||||
+++ b/drivers/pci/quirks.c
|
||||
@@ -3706,6 +3706,106 @@ static int __init pci_apply_final_quirks(void)
|
||||
@@ -3724,6 +3724,106 @@ static int __init pci_apply_final_quirks(void)
|
||||
|
||||
fs_initcall_sync(pci_apply_final_quirks);
|
||||
|
||||
@ -185,7 +185,7 @@ index 60d62a5f9e05..b112d494e51b 100644
|
||||
/*
|
||||
* Following are device-specific reset methods which can be used to
|
||||
* reset a single function if other methods (e.g. FLR, PM D0->D3) are
|
||||
@@ -4559,6 +4659,7 @@ static const struct pci_dev_acs_enabled {
|
||||
@@ -4579,6 +4679,7 @@ static const struct pci_dev_acs_enabled {
|
||||
{ PCI_VENDOR_ID_CAVIUM, PCI_ANY_ID, pci_quirk_cavium_acs },
|
||||
/* APM X-Gene */
|
||||
{ PCI_VENDOR_ID_AMCC, 0xE004, pci_quirk_xgene_acs },
|
||||
|
@ -13,7 +13,7 @@ Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c
|
||||
index 238ddbc127e1..d7a24fd29144 100644
|
||||
index 3d73a3d28d63..7c5a36e5700e 100644
|
||||
--- a/virt/kvm/kvm_main.c
|
||||
+++ b/virt/kvm/kvm_main.c
|
||||
@@ -77,7 +77,7 @@ module_param(halt_poll_ns, uint, 0644);
|
||||
|
@ -20,7 +20,7 @@ Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
|
||||
1 file changed, 1 insertion(+), 9 deletions(-)
|
||||
|
||||
diff --git a/scripts/Makefile.build b/scripts/Makefile.build
|
||||
index 1b07341eda2c..419fe6fdad17 100644
|
||||
index 5d72aa39d3c1..451546219dfc 100644
|
||||
--- a/scripts/Makefile.build
|
||||
+++ b/scripts/Makefile.build
|
||||
@@ -295,27 +295,19 @@ objtool_dep = $(objtool_obj) \
|
||||
|
@ -33,10 +33,10 @@ Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
|
||||
4 files changed, 15 insertions(+), 28 deletions(-)
|
||||
|
||||
diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c
|
||||
index 7c8341e2d3c1..921968c00dde 100644
|
||||
index 1d84e07c0370..c6b1c38b5c56 100644
|
||||
--- a/arch/x86/kvm/vmx.c
|
||||
+++ b/arch/x86/kvm/vmx.c
|
||||
@@ -9966,10 +9966,8 @@ static void vmx_switch_vmcs(struct kvm_vcpu *vcpu, struct loaded_vmcs *vmcs)
|
||||
@@ -9999,10 +9999,8 @@ static void vmx_switch_vmcs(struct kvm_vcpu *vcpu, struct loaded_vmcs *vmcs)
|
||||
static void vmx_free_vcpu_nested(struct kvm_vcpu *vcpu)
|
||||
{
|
||||
struct vcpu_vmx *vmx = to_vmx(vcpu);
|
||||
@ -49,15 +49,16 @@ index 7c8341e2d3c1..921968c00dde 100644
|
||||
free_nested(vmx);
|
||||
vcpu_put(vcpu);
|
||||
diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
|
||||
index e68f7bd79df5..0c971dce8915 100644
|
||||
index e2396d841b26..83cd2c951c49 100644
|
||||
--- a/arch/x86/kvm/x86.c
|
||||
+++ b/arch/x86/kvm/x86.c
|
||||
@@ -7957,16 +7957,12 @@ struct kvm_vcpu *kvm_arch_vcpu_create(struct kvm *kvm,
|
||||
@@ -7981,17 +7981,13 @@ struct kvm_vcpu *kvm_arch_vcpu_create(struct kvm *kvm,
|
||||
|
||||
int kvm_arch_vcpu_setup(struct kvm_vcpu *vcpu)
|
||||
{
|
||||
- int r;
|
||||
-
|
||||
vcpu->arch.arch_capabilities = kvm_get_arch_capabilities();
|
||||
kvm_vcpu_mtrr_init(vcpu);
|
||||
- r = vcpu_load(vcpu);
|
||||
- if (r)
|
||||
@ -71,7 +72,7 @@ index e68f7bd79df5..0c971dce8915 100644
|
||||
}
|
||||
|
||||
void kvm_arch_vcpu_postcreate(struct kvm_vcpu *vcpu)
|
||||
@@ -7976,13 +7972,15 @@ void kvm_arch_vcpu_postcreate(struct kvm_vcpu *vcpu)
|
||||
@@ -8001,13 +7997,15 @@ void kvm_arch_vcpu_postcreate(struct kvm_vcpu *vcpu)
|
||||
|
||||
kvm_hv_vcpu_postcreate(vcpu);
|
||||
|
||||
@ -88,7 +89,7 @@ index e68f7bd79df5..0c971dce8915 100644
|
||||
|
||||
if (!kvmclock_periodic_sync)
|
||||
return;
|
||||
@@ -7993,11 +7991,9 @@ void kvm_arch_vcpu_postcreate(struct kvm_vcpu *vcpu)
|
||||
@@ -8018,11 +8016,9 @@ void kvm_arch_vcpu_postcreate(struct kvm_vcpu *vcpu)
|
||||
|
||||
void kvm_arch_vcpu_destroy(struct kvm_vcpu *vcpu)
|
||||
{
|
||||
@ -101,7 +102,7 @@ index e68f7bd79df5..0c971dce8915 100644
|
||||
kvm_mmu_unload(vcpu);
|
||||
vcpu_put(vcpu);
|
||||
|
||||
@@ -8371,9 +8367,7 @@ int kvm_arch_init_vm(struct kvm *kvm, unsigned long type)
|
||||
@@ -8396,9 +8392,7 @@ int kvm_arch_init_vm(struct kvm *kvm, unsigned long type)
|
||||
|
||||
static void kvm_unload_vcpu_mmu(struct kvm_vcpu *vcpu)
|
||||
{
|
||||
@ -113,10 +114,10 @@ index e68f7bd79df5..0c971dce8915 100644
|
||||
vcpu_put(vcpu);
|
||||
}
|
||||
diff --git a/include/linux/kvm_host.h b/include/linux/kvm_host.h
|
||||
index c807eab9c1d3..6684da3f197f 100644
|
||||
index 9c51dd3ade6a..e5e79847d959 100644
|
||||
--- a/include/linux/kvm_host.h
|
||||
+++ b/include/linux/kvm_host.h
|
||||
@@ -533,7 +533,7 @@ static inline int kvm_vcpu_get_idx(struct kvm_vcpu *vcpu)
|
||||
@@ -534,7 +534,7 @@ static inline int kvm_vcpu_get_idx(struct kvm_vcpu *vcpu)
|
||||
int kvm_vcpu_init(struct kvm_vcpu *vcpu, struct kvm *kvm, unsigned id);
|
||||
void kvm_vcpu_uninit(struct kvm_vcpu *vcpu);
|
||||
|
||||
@ -126,7 +127,7 @@ index c807eab9c1d3..6684da3f197f 100644
|
||||
|
||||
#ifdef __KVM_HAVE_IOAPIC
|
||||
diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c
|
||||
index d7a24fd29144..9cb73320866c 100644
|
||||
index 7c5a36e5700e..80eaa6ee603e 100644
|
||||
--- a/virt/kvm/kvm_main.c
|
||||
+++ b/virt/kvm/kvm_main.c
|
||||
@@ -151,17 +151,12 @@ bool kvm_is_reserved_pfn(kvm_pfn_t pfn)
|
||||
@ -157,7 +158,7 @@ index d7a24fd29144..9cb73320866c 100644
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(vcpu_put);
|
||||
|
||||
@@ -2562,9 +2556,9 @@ static long kvm_vcpu_ioctl(struct file *filp,
|
||||
@@ -2589,9 +2583,9 @@ static long kvm_vcpu_ioctl(struct file *filp,
|
||||
#endif
|
||||
|
||||
|
||||
@ -170,7 +171,7 @@ index d7a24fd29144..9cb73320866c 100644
|
||||
switch (ioctl) {
|
||||
case KVM_RUN: {
|
||||
struct pid *oldpid;
|
||||
@@ -2737,6 +2731,7 @@ static long kvm_vcpu_ioctl(struct file *filp,
|
||||
@@ -2764,6 +2758,7 @@ static long kvm_vcpu_ioctl(struct file *filp,
|
||||
}
|
||||
out:
|
||||
vcpu_put(vcpu);
|
@ -1,55 +0,0 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Eduardo Habkost <ehabkost@redhat.com>
|
||||
Date: Mon, 17 Dec 2018 22:34:18 -0200
|
||||
Subject: [PATCH] kvm: x86: Add AMD's EX_CFG to the list of ignored MSRs
|
||||
|
||||
Some guests OSes (including Windows 10) write to MSR 0xc001102c
|
||||
on some cases (possibly while trying to apply a CPU errata).
|
||||
Make KVM ignore reads and writes to that MSR, so the guest won't
|
||||
crash.
|
||||
|
||||
The MSR is documented as "Execution Unit Configuration (EX_CFG)",
|
||||
at AMD's "BIOS and Kernel Developer's Guide (BKDG) for AMD Family
|
||||
15h Models 00h-0Fh Processors".
|
||||
|
||||
Cc: stable@vger.kernel.org
|
||||
Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
|
||||
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
|
||||
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
|
||||
---
|
||||
arch/x86/include/asm/msr-index.h | 1 +
|
||||
arch/x86/kvm/x86.c | 2 ++
|
||||
2 files changed, 3 insertions(+)
|
||||
|
||||
diff --git a/arch/x86/include/asm/msr-index.h b/arch/x86/include/asm/msr-index.h
|
||||
index 7ca92f9b5eae..4eb78a908544 100644
|
||||
--- a/arch/x86/include/asm/msr-index.h
|
||||
+++ b/arch/x86/include/asm/msr-index.h
|
||||
@@ -382,6 +382,7 @@
|
||||
#define MSR_F15H_NB_PERF_CTR 0xc0010241
|
||||
#define MSR_F15H_PTSC 0xc0010280
|
||||
#define MSR_F15H_IC_CFG 0xc0011021
|
||||
+#define MSR_F15H_EX_CFG 0xc001102c
|
||||
|
||||
/* Fam 10h MSRs */
|
||||
#define MSR_FAM10H_MMIO_CONF_BASE 0xc0010058
|
||||
diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
|
||||
index 0bc041658a1b..e68f7bd79df5 100644
|
||||
--- a/arch/x86/kvm/x86.c
|
||||
+++ b/arch/x86/kvm/x86.c
|
||||
@@ -2241,6 +2241,7 @@ int kvm_set_msr_common(struct kvm_vcpu *vcpu, struct msr_data *msr_info)
|
||||
case MSR_AMD64_PATCH_LOADER:
|
||||
case MSR_AMD64_BU_CFG2:
|
||||
case MSR_AMD64_DC_CFG:
|
||||
+ case MSR_F15H_EX_CFG:
|
||||
break;
|
||||
|
||||
case MSR_IA32_UCODE_REV:
|
||||
@@ -2529,6 +2530,7 @@ int kvm_get_msr_common(struct kvm_vcpu *vcpu, struct msr_data *msr_info)
|
||||
case MSR_AMD64_BU_CFG2:
|
||||
case MSR_IA32_PERF_CTL:
|
||||
case MSR_AMD64_DC_CFG:
|
||||
+ case MSR_F15H_EX_CFG:
|
||||
msr_info->data = 0;
|
||||
break;
|
||||
case MSR_K7_EVNTSEL0 ... MSR_K7_EVNTSEL3:
|
@ -19,18 +19,18 @@ Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
|
||||
index 0c971dce8915..be629513de13 100644
|
||||
index 83cd2c951c49..3118c1ed4642 100644
|
||||
--- a/arch/x86/kvm/x86.c
|
||||
+++ b/arch/x86/kvm/x86.c
|
||||
@@ -7957,6 +7957,7 @@ struct kvm_vcpu *kvm_arch_vcpu_create(struct kvm *kvm,
|
||||
|
||||
@@ -7982,6 +7982,7 @@ struct kvm_vcpu *kvm_arch_vcpu_create(struct kvm *kvm,
|
||||
int kvm_arch_vcpu_setup(struct kvm_vcpu *vcpu)
|
||||
{
|
||||
vcpu->arch.arch_capabilities = kvm_get_arch_capabilities();
|
||||
+ vcpu->arch.msr_platform_info = MSR_PLATFORM_INFO_CPUID_FAULT;
|
||||
kvm_vcpu_mtrr_init(vcpu);
|
||||
vcpu_load(vcpu);
|
||||
kvm_vcpu_reset(vcpu, false);
|
||||
@@ -8058,7 +8059,6 @@ void kvm_vcpu_reset(struct kvm_vcpu *vcpu, bool init_event)
|
||||
@@ -8083,7 +8084,6 @@ void kvm_vcpu_reset(struct kvm_vcpu *vcpu, bool init_event)
|
||||
kvm_pmu_reset(vcpu);
|
||||
vcpu->arch.smbase = 0x30000;
|
||||
|
@ -0,0 +1,22 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Thomas Lamprecht <t.lamprecht@proxmox.com>
|
||||
Date: Fri, 6 Sep 2019 13:04:30 +0200
|
||||
Subject: [PATCH] ntb test: remove unused conflicting SZ_4G define
|
||||
|
||||
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
|
||||
---
|
||||
drivers/ntb/test/ntb_perf.c | 1 -
|
||||
1 file changed, 1 deletion(-)
|
||||
|
||||
diff --git a/drivers/ntb/test/ntb_perf.c b/drivers/ntb/test/ntb_perf.c
|
||||
index 427112cf101a..1f8ee33a07a2 100644
|
||||
--- a/drivers/ntb/test/ntb_perf.c
|
||||
+++ b/drivers/ntb/test/ntb_perf.c
|
||||
@@ -74,7 +74,6 @@
|
||||
#define MAX_SRCS 32
|
||||
#define DMA_OUT_RESOURCE_TO msecs_to_jiffies(50)
|
||||
#define DMA_RETRIES 20
|
||||
-#define SZ_4G (1ULL << 32)
|
||||
#define MAX_SEG_ORDER 20 /* no larger than 1M for kmalloc buffer */
|
||||
#define PIDX NTB_DEF_PEER_IDX
|
||||
|
@ -1,133 +0,0 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Sean Christopherson <sean.j.christopherson@intel.com>
|
||||
Date: Thu, 7 Mar 2019 15:43:02 -0800
|
||||
Subject: [PATCH] KVM: x86: Emulate MSR_IA32_ARCH_CAPABILITIES on AMD hosts
|
||||
|
||||
BugLink: https://bugs.launchpad.net/bugs/1823060
|
||||
|
||||
commit 0cf9135b773bf32fba9dd8e6699c1b331ee4b749 upstream.
|
||||
|
||||
The CPUID flag ARCH_CAPABILITIES is unconditioinally exposed to host
|
||||
userspace for all x86 hosts, i.e. KVM advertises ARCH_CAPABILITIES
|
||||
regardless of hardware support under the pretense that KVM fully
|
||||
emulates MSR_IA32_ARCH_CAPABILITIES. Unfortunately, only VMX hosts
|
||||
handle accesses to MSR_IA32_ARCH_CAPABILITIES (despite KVM_GET_MSRS
|
||||
also reporting MSR_IA32_ARCH_CAPABILITIES for all hosts).
|
||||
|
||||
Move the MSR_IA32_ARCH_CAPABILITIES handling to common x86 code so
|
||||
that it's emulated on AMD hosts.
|
||||
|
||||
Fixes: 1eaafe91a0df4 ("kvm: x86: IA32_ARCH_CAPABILITIES is always supported")
|
||||
Cc: stable@vger.kernel.org
|
||||
Reported-by: Xiaoyao Li <xiaoyao.li@linux.intel.com>
|
||||
Cc: Jim Mattson <jmattson@google.com>
|
||||
Signed-off-by: Sean Christopherson <sean.j.christopherson@intel.com>
|
||||
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
|
||||
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||
|
||||
Signed-off-by: Seth Forshee <seth.forshee@canonical.com>
|
||||
|
||||
(back ported from commit 0cf9135b773bf32fba9dd8e6699c1b331ee4b749)
|
||||
Backported-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
|
||||
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
|
||||
---
|
||||
arch/x86/include/asm/kvm_host.h | 1 +
|
||||
arch/x86/kvm/vmx.c | 14 --------------
|
||||
arch/x86/kvm/x86.c | 12 ++++++++++++
|
||||
3 files changed, 13 insertions(+), 14 deletions(-)
|
||||
|
||||
diff --git a/arch/x86/include/asm/kvm_host.h b/arch/x86/include/asm/kvm_host.h
|
||||
index c2bb7da8e5b4..e238785c22d3 100644
|
||||
--- a/arch/x86/include/asm/kvm_host.h
|
||||
+++ b/arch/x86/include/asm/kvm_host.h
|
||||
@@ -509,6 +509,7 @@ struct kvm_vcpu_arch {
|
||||
bool tpr_access_reporting;
|
||||
u64 ia32_xss;
|
||||
u64 microcode_version;
|
||||
+ u64 arch_capabilities;
|
||||
|
||||
/*
|
||||
* Paging state of the vcpu
|
||||
diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c
|
||||
index 921968c00dde..cddbdd2d615d 100644
|
||||
--- a/arch/x86/kvm/vmx.c
|
||||
+++ b/arch/x86/kvm/vmx.c
|
||||
@@ -750,7 +750,6 @@ struct vcpu_vmx {
|
||||
u64 msr_guest_kernel_gs_base;
|
||||
#endif
|
||||
|
||||
- u64 arch_capabilities;
|
||||
u64 spec_ctrl;
|
||||
|
||||
u32 vm_entry_controls_shadow;
|
||||
@@ -3485,12 +3484,6 @@ static int vmx_get_msr(struct kvm_vcpu *vcpu, struct msr_data *msr_info)
|
||||
|
||||
msr_info->data = to_vmx(vcpu)->spec_ctrl;
|
||||
break;
|
||||
- case MSR_IA32_ARCH_CAPABILITIES:
|
||||
- if (!msr_info->host_initiated &&
|
||||
- !guest_cpuid_has(vcpu, X86_FEATURE_ARCH_CAPABILITIES))
|
||||
- return 1;
|
||||
- msr_info->data = to_vmx(vcpu)->arch_capabilities;
|
||||
- break;
|
||||
case MSR_IA32_SYSENTER_CS:
|
||||
msr_info->data = vmcs_read32(GUEST_SYSENTER_CS);
|
||||
break;
|
||||
@@ -3652,11 +3645,6 @@ static int vmx_set_msr(struct kvm_vcpu *vcpu, struct msr_data *msr_info)
|
||||
vmx_disable_intercept_for_msr(vmx->vmcs01.msr_bitmap, MSR_IA32_PRED_CMD,
|
||||
MSR_TYPE_W);
|
||||
break;
|
||||
- case MSR_IA32_ARCH_CAPABILITIES:
|
||||
- if (!msr_info->host_initiated)
|
||||
- return 1;
|
||||
- vmx->arch_capabilities = data;
|
||||
- break;
|
||||
case MSR_IA32_CR_PAT:
|
||||
if (vmcs_config.vmentry_ctrl & VM_ENTRY_LOAD_IA32_PAT) {
|
||||
if (!kvm_mtrr_valid(vcpu, MSR_IA32_CR_PAT, data))
|
||||
@@ -5914,8 +5902,6 @@ static void vmx_vcpu_setup(struct vcpu_vmx *vmx)
|
||||
++vmx->nmsrs;
|
||||
}
|
||||
|
||||
- vmx->arch_capabilities = kvm_get_arch_capabilities();
|
||||
-
|
||||
vm_exit_controls_init(vmx, vmcs_config.vmexit_ctrl);
|
||||
|
||||
/* 22.2.1, 20.8.1 */
|
||||
diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
|
||||
index be629513de13..88f910046a60 100644
|
||||
--- a/arch/x86/kvm/x86.c
|
||||
+++ b/arch/x86/kvm/x86.c
|
||||
@@ -2248,6 +2248,11 @@ int kvm_set_msr_common(struct kvm_vcpu *vcpu, struct msr_data *msr_info)
|
||||
if (msr_info->host_initiated)
|
||||
vcpu->arch.microcode_version = data;
|
||||
break;
|
||||
+ case MSR_IA32_ARCH_CAPABILITIES:
|
||||
+ if (!msr_info->host_initiated)
|
||||
+ return 1;
|
||||
+ vcpu->arch.arch_capabilities = data;
|
||||
+ break;
|
||||
case MSR_EFER:
|
||||
return set_efer(vcpu, data);
|
||||
case MSR_K7_HWCR:
|
||||
@@ -2544,6 +2549,12 @@ int kvm_get_msr_common(struct kvm_vcpu *vcpu, struct msr_data *msr_info)
|
||||
case MSR_IA32_UCODE_REV:
|
||||
msr_info->data = vcpu->arch.microcode_version;
|
||||
break;
|
||||
+ case MSR_IA32_ARCH_CAPABILITIES:
|
||||
+ if (!msr_info->host_initiated &&
|
||||
+ !guest_cpuid_has(vcpu, X86_FEATURE_ARCH_CAPABILITIES))
|
||||
+ return 1;
|
||||
+ msr_info->data = vcpu->arch.arch_capabilities;
|
||||
+ break;
|
||||
case MSR_IA32_TSC:
|
||||
msr_info->data = kvm_scale_tsc(vcpu, rdtsc()) + vcpu->arch.tsc_offset;
|
||||
break;
|
||||
@@ -7957,6 +7968,7 @@ struct kvm_vcpu *kvm_arch_vcpu_create(struct kvm *kvm,
|
||||
|
||||
int kvm_arch_vcpu_setup(struct kvm_vcpu *vcpu)
|
||||
{
|
||||
+ vcpu->arch.arch_capabilities = kvm_get_arch_capabilities();
|
||||
vcpu->arch.msr_platform_info = MSR_PLATFORM_INFO_CPUID_FAULT;
|
||||
kvm_vcpu_mtrr_init(vcpu);
|
||||
vcpu_load(vcpu);
|
@ -1 +1 @@
|
||||
Subproject commit 9bff5f095923aab04411cf4e9135b975b70e3ead
|
||||
Subproject commit 7c8b9d356cf823f9ce6d92b3827866f3db8e88e4
|
Loading…
Reference in New Issue
Block a user