diff options
author | Miaohe Lin <linmiaohe@huawei.com> | 2020-02-21 22:04:46 +0800 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2020-02-28 15:39:16 +0100 |
commit | ec94e53c5d43ecc70c8e4e0089936ba0f26c8398 (patch) | |
tree | af1c049e35e93a4924e0622962347b80fd42076a | |
parent | 0e9a4ceccc19e0defe42a0b2884b0f7b208d1a8c (diff) | |
download | linux-stable-ec94e53c5d43ecc70c8e4e0089936ba0f26c8398.tar.gz linux-stable-ec94e53c5d43ecc70c8e4e0089936ba0f26c8398.tar.bz2 linux-stable-ec94e53c5d43ecc70c8e4e0089936ba0f26c8398.zip |
KVM: apic: avoid calculating pending eoi from an uninitialized val
commit 23520b2def95205f132e167cf5b25c609975e959 upstream.
When pv_eoi_get_user() fails, 'val' may remain uninitialized and the return
value of pv_eoi_get_pending() becomes random. Fix the issue by initializing
the variable.
Reviewed-by: Vitaly Kuznetsov <vkuznets@redhat.com>
Signed-off-by: Miaohe Lin <linmiaohe@huawei.com>
Cc: stable@vger.kernel.org
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r-- | arch/x86/kvm/lapic.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/arch/x86/kvm/lapic.c b/arch/x86/kvm/lapic.c index ce8c4ae25c15..078b2176f2a2 100644 --- a/arch/x86/kvm/lapic.c +++ b/arch/x86/kvm/lapic.c @@ -536,9 +536,11 @@ static inline bool pv_eoi_enabled(struct kvm_vcpu *vcpu) static bool pv_eoi_get_pending(struct kvm_vcpu *vcpu) { u8 val; - if (pv_eoi_get_user(vcpu, &val) < 0) + if (pv_eoi_get_user(vcpu, &val) < 0) { apic_debug("Can't read EOI MSR value: 0x%llx\n", (unsigned long long)vcpu->arch.pv_eoi.msr_val); + return false; + } return val & 0x1; } |