Revert "KVM: x86: work around leak of uninitialized stack contents"
authorVitaly Kuznetsov <vkuznets@redhat.com>
Fri, 5 Jun 2020 11:59:06 +0000 (13:59 +0200)
committerPaolo Bonzini <pbonzini@redhat.com>
Mon, 8 Jun 2020 11:59:42 +0000 (07:59 -0400)
handle_vmptrst()/handle_vmread() stopped injecting #PF unconditionally
and switched to nested_vmx_handle_memory_failure() which just kills the
guest with KVM_EXIT_INTERNAL_ERROR in case of MMIO access, zeroing
'exception' in kvm_write_guest_virt_system() is not needed anymore.

This reverts commit 541ab2aeb28251bf7135c7961f3a6080eebcc705.

Signed-off-by: Vitaly Kuznetsov <vkuznets@redhat.com>
Message-Id: <20200605115906.532682-2-vkuznets@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
arch/x86/kvm/x86.c

index 13512baf6f6e3f4a8de821cd52626c4b53e43141..c26dd1363151eb7e16a5fa5076a0c154bfeabaec 100644 (file)
@@ -5647,13 +5647,6 @@ int kvm_write_guest_virt_system(struct kvm_vcpu *vcpu, gva_t addr, void *val,
        /* kvm_write_guest_virt_system can pull in tons of pages. */
        vcpu->arch.l1tf_flush_l1d = true;
 
-       /*
-        * FIXME: this should call handle_emulation_failure if X86EMUL_IO_NEEDED
-        * is returned, but our callers are not ready for that and they blindly
-        * call kvm_inject_page_fault.  Ensure that they at least do not leak
-        * uninitialized kernel stack memory into cr2 and error code.
-        */
-       memset(exception, 0, sizeof(*exception));
        return kvm_write_guest_virt_helper(addr, val, bytes, vcpu,
                                           PFERR_WRITE_MASK, exception);
 }