Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:Leap:15.4:ARM
qemu.21548
target-i386-kvm-initialize-microcode-rev.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File target-i386-kvm-initialize-microcode-rev.patch of Package qemu.21548
From: Paolo Bonzini <pbonzini@redhat.com> Date: Mon, 20 Jan 2020 19:21:44 +0100 Subject: target/i386: kvm: initialize microcode revision from KVM Git-commit: 32c87d70ff55b96741f08c35108935cac6f40fe4 Reference: jsc#SLE-17785 KVM can return the host microcode revision as a feature MSR. Use it as the default value for -cpu host. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Message-Id: <1579544504-3616-4-git-send-email-pbonzini@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Dario Faggioli <dfaggioli@suse.com> --- target/i386/cpu.c | 4 ++++ target/i386/kvm.c | 5 +++++ 2 files changed, 9 insertions(+) diff --git a/target/i386/cpu.c b/target/i386/cpu.c index 88f4ad18300d3d1311282e7d8b15..17cc1e9a71f5bedc8917071be12b 100644 --- a/target/i386/cpu.c +++ b/target/i386/cpu.c @@ -6430,6 +6430,10 @@ static void x86_cpu_realizefn(DeviceState *dev, Error **errp) &cpu->mwait.ecx, &cpu->mwait.edx); env->features[FEAT_1_ECX] |= CPUID_EXT_MONITOR; } + if (kvm_enabled() && cpu->ucode_rev == 0) { + cpu->ucode_rev = kvm_arch_get_supported_msr_feature(kvm_state, + MSR_IA32_UCODE_REV); + } } if (cpu->ucode_rev == 0) { diff --git a/target/i386/kvm.c b/target/i386/kvm.c index 91cd4976e262ad6bbb83206114b3..a735ce031810a5f122720a13a052 100644 --- a/target/i386/kvm.c +++ b/target/i386/kvm.c @@ -2707,6 +2707,11 @@ static void kvm_init_msrs(X86CPU *cpu) env->features[FEAT_CORE_CAPABILITY]); } + if (kvm_arch_get_supported_msr_feature(kvm_state, + MSR_IA32_UCODE_REV)) { + kvm_msr_entry_add(cpu, MSR_IA32_UCODE_REV, cpu->ucode_rev); + } + /* * Older kernels do not include VMX MSRs in KVM_GET_MSR_INDEX_LIST, but * all kernels with MSR features should have them.
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor