The combination of the pool-based ucall implementation + page_fault_test resulted in some 'fun' bugs. As has always been the case, KVM selftests is a house of cards. Small series to fix up the issues on kvm/queue. Patches 1-2 can probably be squashed into Paolo's merge resolution, if desired. Tested on Ampere Altra and a Skylake box, since there was a decent amount of munging in architecture-generic code. v1 -> v2: - Collect R-b from Sean (thanks!) - Use a common routine for split and contiguous VA spaces, with commentary on why arm64 is different since we all get to look at it now. (Sean) - Don't identity map the ucall MMIO hole - Fix an off-by-one issue in the accounting of virtual memory, discovered in fighting with #2 - Fix an infinite loop in ucall_alloc(), discovered fighting with the ucall_init() v. kvm_vm_elf_load() ordering issue Mark Brown (1): KVM: selftests: Fix build due to ucall_uninit() removal Oliver Upton (6): KVM: selftests: Setup ucall after loading program into guest memory KVM: selftests: Mark correct page as mapped in virt_map() KVM: selftests: Correctly initialize the VA space for TTBR0_EL1 KVM: arm64: selftests: Don't identity map the ucall MMIO hole KVM: selftests: Allocate ucall pool from MEM_REGION_DATA KVM: selftests: Avoid infinite loop if ucall_alloc() fails .../selftests/kvm/aarch64/page_fault_test.c | 9 +++- .../selftests/kvm/include/kvm_util_base.h | 1 + .../testing/selftests/kvm/lib/aarch64/ucall.c | 6 ++- tools/testing/selftests/kvm/lib/kvm_util.c | 53 ++++++++++++++++--- .../testing/selftests/kvm/lib/ucall_common.c | 14 +++-- 5 files changed, 68 insertions(+), 15 deletions(-) base-commit: 89b2395859651113375101bb07cd6340b1ba3637 -- 2.39.0.rc1.256.g54fd8350bd-goog