[PATCH v2 1/1] KVM: arm64: Fix the upper limit of the walker range

From: Sebastian Ene
Date: Tue Jan 14 2025 - 10:04:32 EST


Prevent the walker from running into weeds when walking an
entire address range.

Fixes: b1e57de62cfb4 ("KVM: arm64: Add stand-alone page-table walker
infrastructure")
Cc: stable@xxxxxxxxxxxxxxx
Signed-off-by: Sebastian Ene <sebastianene@xxxxxxxxxx>
---
arch/arm64/kvm/hyp/pgtable.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/arm64/kvm/hyp/pgtable.c b/arch/arm64/kvm/hyp/pgtable.c
index 40bd55966..2ffb5571e 100644
--- a/arch/arm64/kvm/hyp/pgtable.c
+++ b/arch/arm64/kvm/hyp/pgtable.c
@@ -260,7 +260,7 @@ static int _kvm_pgtable_walk(struct kvm_pgtable *pgt, struct kvm_pgtable_walk_da
{
u32 idx;
int ret = 0;
- u64 limit = BIT(pgt->ia_bits);
+ u64 limit = BIT(pgt->ia_bits) - 1;

if (data->addr > limit || data->end > limit)
return -ERANGE;
--
2.47.1.688.g23fc6f90ad-goog