[PATCH v2 0/5] KVM: selftests: Alignment fixes and arm64 MMU cleanup

Fuad Tabba
2025-12-15T16:52:06Z

v2:
- Resend to correct partial To/Cc lists. The previous versions were
inadvertently sent to disjoint subsets of the maintainers and lists
(kvmarm vs kvm-riscv). Apologies for the noise and the duplicate
threads.
- No code changes.

This series tidies up a few things in the KVM selftests. It addresses an
error in memory alignment, hardens the arm64 MMU configuration for
selftests, and fixes minor documentation issues.

First, for arm64, the series explicitly disables translation table walks
for the unused upper virtual address range (TTBR1). Since selftests run
entirely in the lower range (TTBR0), leaving TTBR1 uninitialized but
active could lead to unpredictable behavior if guest code accesses high
addresses. We set EPD1 (and TBI1) to ensure such accesses
deterministically generate translation faults.

Second, the series fixes the `page_align()` implementation in both arm64
and riscv. The previous version incorrectly rounded up already-aligned
addresses to the *next* page, potentially wasting memory or causing
unexpected gaps. After fixing the logic in the arch-specific files, the
function is moved to the common `kvm_util.h` header to eliminate code
duplication.

Finally, a few comments and argument descriptions in `kvm_util` are
updated to match the actual code implementation.

Based on Linux 6.19-rc1.

Cheers,
/fuad

Fuad Tabba (5):
KVM: arm64: selftests: Disable unused TTBR1_EL1 translations
KVM: arm64: selftests: Fix incorrect rounding in page_align()
KVM: riscv: selftests: Fix incorrect rounding in page_align()
KVM: selftests: Move page_align() to shared header
KVM: selftests: Fix typos and stale comments in kvm_util

tools/testing/selftests/kvm/include/arm64/processor.h | 4 ++++
tools/testing/selftests/kvm/include/kvm_util.h | 9 +++++++--
tools/testing/selftests/kvm/lib/arm64/processor.c | 7 ++-----
tools/testing/selftests/kvm/lib/kvm_util.c | 2 +-
tools/testing/selftests/kvm/lib/riscv/processor.c | 5 -----
5 files changed, 14 insertions(+), 13 deletions(-)

base-commit: 8f0b4cce4481fb22653697cced8d0d04027cb1e8
--
2.52.0.239.gd5f0c6e74e-goog