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

Marc Zyngier maz at kernel.org
Fri Jun 26 07:20:51 PDT 2026


On Fri, 26 Jun 2026 14:42:07 +0100,
Alexander Martyniuk <alexevgmart at gmail.com> wrote:
> 
> From: Hyunwoo Kim <imv4bel at gmail.com>
> 
> 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 at vger.kernel.org
> 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 at kernel.org>
> Signed-off-by: Hyunwoo Kim <imv4bel at gmail.com>
> Reviewed-by: Oliver Upton <oupton at kernel.org>
> Link: https://patch.msgid.link/aiAZfdeyanIvP8SD@v4bel
> Signed-off-by: Marc Zyngier <maz at kernel.org>
> [Alexander: __kvm_find_s1_desc_level() not present, patching only __kvm_at_s12()]
> Signed-off-by: Alexander Martyniuk <alexevgmart at gmail.com>

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.



More information about the linux-arm-kernel mailing list