KVM: arm64: Ensure canonical IPA is hugepage-aligned when handling fault
authorOliver Upton <oliver.upton@linux.dev>
Thu, 22 Aug 2024 07:17:09 +0000 (07:17 +0000)
committerOliver Upton <oliver.upton@linux.dev>
Thu, 22 Aug 2024 07:41:00 +0000 (07:41 +0000)
commit1d8c3c23a6bc1527e253b305b4b68c03d833b824
tree1de599ebf4723b0f3236ec1815ba05a102e09d8e
parentf616506754d34bcfdbfbc7508b562e5c98461e9a
KVM: arm64: Ensure canonical IPA is hugepage-aligned when handling fault

Zenghui reports that VMs backed by hugetlb pages are no longer booting
after commit fd276e71d1e7 ("KVM: arm64: nv: Handle shadow stage 2 page
faults").

Support for shadow stage-2 MMUs introduced the concept of a fault IPA
and canonical IPA to stage-2 fault handling. These are identical in the
non-nested case, as the hardware stage-2 context is always that of the
canonical IPA space.

Both addresses need to be hugepage-aligned when preparing to install a
hugepage mapping to ensure that KVM uses the correct GFN->PFN translation
and installs that at the correct IPA for the current stage-2.

And now I'm feeling thirsty after all this talk of IPAs...

Fixes: fd276e71d1e7 ("KVM: arm64: nv: Handle shadow stage 2 page faults")
Reported-by: Zenghui Yu <yuzenghui@huawei.com>
Reviewed-by: Marc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/r/20240822071710.2291690-1-oliver.upton@linux.dev
Signed-off-by: Oliver Upton <oliver.upton@linux.dev>
arch/arm64/kvm/mmu.c