[PATCH] KVM: arm64: vgic: Don't hold config_lock while unregistering redistributors

Oliver Upton oliver.upton at linux.dev
Mon Aug 19 10:26:05 PDT 2024


On Mon, 19 Aug 2024 13:50:45 +0100, Marc Zyngier wrote:
> We recently moved the teardown of the vgic part of a vcpu inside
> a critical section guarded by the config_lock. This teardown phase
> involves calling into kvm_io_bus_unregister_dev(), which takes the
> kvm->srcu lock.
> 
> However, this violates the established order where kvm->srcu is
> taken on a memory fault (such as an MMIO access), possibly
> followed by taking the config_lock if the GIC emulation requires
> mutual exclusion from the other vcpus.
> 
> [...]

Tested this w/ kvm-unit-tests, selftests, and a few VMs on a lockdep kernel.

Applied to kvmarm/fixes, thanks!

[1/1] KVM: arm64: vgic: Don't hold config_lock while unregistering redistributors
      https://git.kernel.org/kvmarm/kvmarm/c/f616506754d3

--
Best,
Oliver



More information about the linux-arm-kernel mailing list