KVM: selftests: Mark correct page as mapped in virt_map()
authorOliver Upton <oliver.upton@linux.dev>
Fri, 9 Dec 2022 01:53:02 +0000 (01:53 +0000)
committerPaolo Bonzini <pbonzini@redhat.com>
Tue, 27 Dec 2022 11:00:50 +0000 (06:00 -0500)
The loop marks vaddr as mapped after incrementing it by page size,
thereby marking the *next* page as mapped. Set the bit in vpages_mapped
first instead.

Fixes: 56fc7732031d ("KVM: selftests: Fill in vm->vpages_mapped bitmap in virt_map() too")
Signed-off-by: Oliver Upton <oliver.upton@linux.dev>
Message-Id: <20221209015307.1781352-4-oliver.upton@linux.dev>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
tools/testing/selftests/kvm/lib/kvm_util.c

index bd892a8..56d5ea9 100644 (file)
@@ -1425,10 +1425,10 @@ void virt_map(struct kvm_vm *vm, uint64_t vaddr, uint64_t paddr,
 
        while (npages--) {
                virt_pg_map(vm, vaddr, paddr);
+               sparsebit_set(vm->vpages_mapped, vaddr >> vm->page_shift);
+
                vaddr += page_size;
                paddr += page_size;
-
-               sparsebit_set(vm->vpages_mapped, vaddr >> vm->page_shift);
        }
 }