[PATCH] KVM: arm64: Add memslot for ST_GPA_BASE in check_steal_time_uapi()

From: Jiakai Xu

Date: Thu Apr 30 2026 - 22:17:10 EST


The refactored check_steal_time_uapi() creates a temporary VM via
vm_create_with_one_vcpu(), whose default memslot0 only covers GPA
0..~2MB. Setting st_ipa to ST_GPA_BASE (1 << 30) causes
kvm_arm_pvtime_set_attr() to fail with EINVAL because gfn_to_hva()
cannot find a valid memslot at the target GFN.

Add a memslot at ST_GPA_BASE in the temporary VM, mirroring what
the main test already does.

Reported-by: Mark Brown <broonie@xxxxxxxxxx>
Closes: https://lore.kernel.org/lkml/afM8WEe4gG5tL4fH@xxxxxxxxxxxx
Signed-off-by: Jiakai Xu <xujiakai2025@xxxxxxxxxxx>
Signed-off-by: Jiakai Xu <jiakaiPeanut@xxxxxxxxx>
Fixes: 40351ed924dd30 ("KVM: selftests: Refactor UAPI tests into dedicated function")
---
tools/testing/selftests/kvm/steal_time.c | 4 ++++
1 file changed, 4 insertions(+)

diff --git a/tools/testing/selftests/kvm/steal_time.c b/tools/testing/selftests/kvm/steal_time.c
index 7df2bc8eec02..2b01b466ddc1 100644
--- a/tools/testing/selftests/kvm/steal_time.c
+++ b/tools/testing/selftests/kvm/steal_time.c
@@ -213,6 +213,10 @@ static void check_steal_time_uapi(void)

vm = vm_create_with_one_vcpu(&vcpu, NULL);

+ /* ST_GPA_BASE needs a valid memslot for gfn_to_hva() to succeed */
+ vm_userspace_mem_region_add(vm, VM_MEM_SRC_ANONYMOUS, ST_GPA_BASE,
+ 1, 1, 0);
+
struct kvm_device_attr dev = {
.group = KVM_ARM_VCPU_PVTIME_CTRL,
.attr = KVM_ARM_VCPU_PVTIME_IPA,
--
2.34.1