]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/commitdiff
KVM: Properly check if "page" is valid in kvm_vcpu_unmap
authorKarimAllah Ahmed <karahmed@amazon.de>
Wed, 10 Jul 2019 09:13:13 +0000 (11:13 +0200)
committerStefan Bader <stefan.bader@canonical.com>
Thu, 14 May 2020 08:54:22 +0000 (10:54 +0200)
BugLink: https://bugs.launchpad.net/bugs/1877461
commit b614c6027896ff9ad6757122e84760d938cab15e upstream.

The field "page" is initialized to KVM_UNMAPPED_PAGE when it is not used
(i.e. when the memory lives outside kernel control). So this check will
always end up using kunmap even for memremap regions.

Fixes: e45adf665a53 ("KVM: Introduce a new guest mapping API")
Signed-off-by: KarimAllah Ahmed <karahmed@amazon.de>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Ben Hutchings <ben.hutchings@codethink.co.uk>
Signed-off-by: Sasha Levin <sashal@kernel.org>
Signed-off-by: Kamal Mostafa <kamal@canonical.com>
Signed-off-by: Stefan Bader <stefan.bader@canonical.com>
virt/kvm/kvm_main.c

index be972b4ccdabb5ce67bfd494e87deb603243988f..d52b1c0259d3fd69182f1dde734e6ebfc2f012f0 100644 (file)
@@ -1757,7 +1757,7 @@ void kvm_vcpu_unmap(struct kvm_vcpu *vcpu, struct kvm_host_map *map,
        if (!map->hva)
                return;
 
-       if (map->page)
+       if (map->page != KVM_UNMAPPED_PAGE)
                kunmap(map->page);
 #ifdef CONFIG_HAS_IOMEM
        else