[PATCH v8 19/28] KVM: arm64: Support unaligned fixmap in the pKVM hyp

From: Vincent Donnefort

Date: Fri Nov 07 2025 - 04:39:08 EST


Return the fixmap VA with the page offset, instead of the page base
address. This allows to use hyp_fixmap_map() seamlessly regardless of
the address alignment.

Signed-off-by: Vincent Donnefort <vdonnefort@xxxxxxxxxx>

diff --git a/arch/arm64/kvm/hyp/nvhe/mm.c b/arch/arm64/kvm/hyp/nvhe/mm.c
index ae8391baebc3..75014dc7d82e 100644
--- a/arch/arm64/kvm/hyp/nvhe/mm.c
+++ b/arch/arm64/kvm/hyp/nvhe/mm.c
@@ -239,7 +239,7 @@ static void *fixmap_map_slot(struct hyp_fixmap_slot *slot, phys_addr_t phys)
WRITE_ONCE(*ptep, pte);
dsb(ishst);

- return (void *)slot->addr;
+ return (void *)slot->addr + offset_in_page(phys);
}

void *hyp_fixmap_map(phys_addr_t phys)
--
2.51.2.1041.gc1ab5b90ca-goog