Fix the following failure when running with 16K host page size:
==== Test Assertion Failure ====
  lib/kvm_util.c:991: vm_adjust_num_guest_pages(vm->mode, npages) == npages
  pid=873 tid=873 errno=0 - Success
     1  0x0000000000405a27: vm_mem_add at kvm_util.c:991
     2  0x000000000040241f: check_steal_time_uapi at steal_time.c:223 
(discriminator 7)
     3   (inlined by) main at steal_time.c:539 (discriminator 7)
     4  0x00007fff8b57af3b: ?? ??:0
     5  0x00007fff8b57b007: ?? ??:0
     6  0x0000000000402b6f: _start at ??:?
  Number of guest pages is not compatible with the host. Try npages=4

Fixes: fc240715fc50 ("KVM: selftests: arm64: Fix steal_time test after UAPI 
refactoring")
Reported-by: Zenghui Yu <[email protected]>
Link: 
https://lore.kernel.org/kvmarm/[email protected]/T/#u
Signed-off-by: Sebastian Ott <[email protected]>
---
 tools/testing/selftests/kvm/steal_time.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/tools/testing/selftests/kvm/steal_time.c 
b/tools/testing/selftests/kvm/steal_time.c
index 76fcdd1fd3cb..cdb81f3ee4b2 100644
--- a/tools/testing/selftests/kvm/steal_time.c
+++ b/tools/testing/selftests/kvm/steal_time.c
@@ -208,6 +208,7 @@ static void check_steal_time_uapi(void)
 {
        struct kvm_vm *vm;
        struct kvm_vcpu *vcpu;
+       unsigned int gpages;
        u64 st_ipa;
        int ret;

@@ -220,8 +221,9 @@ static void check_steal_time_uapi(void)
        };

        vcpu_ioctl(vcpu, KVM_HAS_DEVICE_ATTR, &dev);
-       vm_userspace_mem_region_add(vm, VM_MEM_SRC_ANONYMOUS, ST_GPA_BASE, 1, 
1, 0);
-       virt_map(vm, ST_GPA_BASE, ST_GPA_BASE, 1);
+       gpages = vm_calc_num_guest_pages(VM_MODE_DEFAULT, 1);
+       vm_userspace_mem_region_add(vm, VM_MEM_SRC_ANONYMOUS, ST_GPA_BASE, 1, 
gpages, 0);
+       virt_map(vm, ST_GPA_BASE, ST_GPA_BASE, gpages);

        st_ipa = (ulong)ST_GPA_BASE | 1;
        ret = __vcpu_ioctl(vcpu, KVM_SET_DEVICE_ATTR, &dev);
--
2.54.0


Reply via email to