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 16:38:58 +0100 |
| commit | e541982a6e5f5933ec2108f6a41feeb711e8ec82 (patch) | |
| tree | 7673b64990ce489a852f42a089fad39091dae42e | |
| parent | 267eec2d216d5eb646538d51455cfa90fec100d2 (diff) | |
| download | linux-e541982a6e5f5933ec2108f6a41feeb711e8ec82.tar.gz linux-e541982a6e5f5933ec2108f6a41feeb711e8ec82.tar.bz2 linux-e541982a6e5f5933ec2108f6a41feeb711e8ec82.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 a2631a147a09..8c6392534d14 100644 --- a/arch/x86/kvm/lapic.c +++ b/arch/x86/kvm/lapic.c @@ -633,9 +633,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; } |
