From: Marc Zyngier Date: Wed, 21 May 2025 10:04:11 +0000 (+0100) Subject: KVM: arm64: nv: Release faulted-in VNCR page from mmu_lock critical section X-Git-Tag: v6.16-rc1~129^2~2^2~1^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=538fbac74019c13dac341b20fbcc1e96c9a8d01e;p=thirdparty%2Fkernel%2Flinux.git KVM: arm64: nv: Release faulted-in VNCR page from mmu_lock critical section The conversion to kvm_release_faultin_page() missed the requirement for this to be called within a critical section with mmu_lock held for write. Move this call up to satisfy this requirement. Fixes: 069a05e535496 ("KVM: arm64: nv: Handle VNCR_EL2-triggered faults") Signed-off-by: Marc Zyngier --- diff --git a/arch/arm64/kvm/nested.c b/arch/arm64/kvm/nested.c index 2381663d2ee98..e7e71f1615f19 100644 --- a/arch/arm64/kvm/nested.c +++ b/arch/arm64/kvm/nested.c @@ -1228,9 +1228,9 @@ static int kvm_translate_vncr(struct kvm_vcpu *vcpu) vt->cpu = -1; kvm_make_request(KVM_REQ_MAP_L1_VNCR_EL2, vcpu); + kvm_release_faultin_page(vcpu->kvm, page, false, vt->wr.pw); } - kvm_release_faultin_page(vcpu->kvm, page, false, vt->wr.pw); if (vt->wr.pw) mark_page_dirty(vcpu->kvm, gfn);