Re: [PATCH 6.12] KVM: arm64: Take the SRCU lock for page table walks in fault injection and AT emulation

From: Marc Zyngier

Date: Fri Jun 26 2026 - 10:21:00 EST


On Fri, 26 Jun 2026 14:42:07 +0100,
Alexander Martyniuk <alexevgmart@xxxxxxxxx> wrote:
>
> From: Hyunwoo Kim <imv4bel@xxxxxxxxx>
>
> commit f2ca45b50d4216c9cc7ffabf50d9ad1932209251 upstream.
>
> walk_s1() and kvm_walk_nested_s2() expect to be called while holding
> kvm->srcu to guard against memslot changes. While this is generally
> the case, __kvm_at_s12() and __kvm_find_s1_desc_level() call into the
> respective walkers without taking kvm->srcu.
>
> Fix by acquiring kvm->srcu prior to the table walk in both instances.
>
> Cc: stable@xxxxxxxxxxxxxxx
> Fixes: 50f77dc87f13 ("KVM: arm64: Populate level on S1PTW SEA injection")
> Fixes: be04cebf3e78 ("KVM: arm64: nv: Add emulation of AT S12E{0,1}{R,W}")
> Suggested-by: Oliver Upton <oupton@xxxxxxxxxx>
> Signed-off-by: Hyunwoo Kim <imv4bel@xxxxxxxxx>
> Reviewed-by: Oliver Upton <oupton@xxxxxxxxxx>
> Link: https://patch.msgid.link/aiAZfdeyanIvP8SD@v4bel
> Signed-off-by: Marc Zyngier <maz@xxxxxxxxxx>
> [Alexander: __kvm_find_s1_desc_level() not present, patching only __kvm_at_s12()]
> Signed-off-by: Alexander Martyniuk <alexevgmart@xxxxxxxxx>

See thread at [1], which explains why this is not needed.

M.

[1] https://lore.kernel.org/all/aifnUC7gmeniiYPv@v4bel/

--
Without deviation from the norm, progress is not possible.