From: Marc Zyngier Date: Wed, 21 May 2025 09:58:29 +0000 (+0100) Subject: KVM: arm64: nv: Handle TLBI S1E2 for VNCR invalidation with mmu_lock held X-Git-Tag: v6.16-rc1~129^2~2^2~1^2~1 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=beab7d058309bfe0460a441b1c73639941e33d38;p=thirdparty%2Fkernel%2Fstable.git KVM: arm64: nv: Handle TLBI S1E2 for VNCR invalidation with mmu_lock held Calling invalidate_vncr_va() without the mmu_lock held for write is a bad idea, and lockdep tells you about that. Fixes: 4ffa72ad8f37e ("KVM: arm64: nv: Add S1 TLB invalidation primitive for VNCR_EL2") Signed-off-by: Marc Zyngier --- diff --git a/arch/arm64/kvm/nested.c b/arch/arm64/kvm/nested.c index 56b732003caa7..2381663d2ee98 100644 --- a/arch/arm64/kvm/nested.c +++ b/arch/arm64/kvm/nested.c @@ -1044,6 +1044,8 @@ void kvm_handle_s1e2_tlbi(struct kvm_vcpu *vcpu, u32 inst, u64 val) struct s1e2_tlbi_scope scope = {}; compute_s1_tlbi_range(vcpu, inst, val, &scope); + + guard(write_lock)(&vcpu->kvm->mmu_lock); invalidate_vncr_va(vcpu->kvm, &scope); }