]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
KVM: arm64: nv: Inject a SEA if failed to read the descriptor
authorZenghui Yu (Huawei) <zenghui.yu@linux.dev>
Wed, 25 Feb 2026 17:35:15 +0000 (01:35 +0800)
committerMarc Zyngier <maz@kernel.org>
Thu, 5 Mar 2026 15:46:48 +0000 (15:46 +0000)
Failure to read the descriptor (because it is outside of a memslot) should
result in a SEA being injected in the guest.

Suggested-by: Marc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/r/86ms1m9lp3.wl-maz@kernel.org
Signed-off-by: Zenghui Yu (Huawei) <zenghui.yu@linux.dev>
Link: https://patch.msgid.link/20260225173515.20490-4-zenghui.yu@linux.dev
Signed-off-by: Marc Zyngier <maz@kernel.org>
arch/arm64/kvm/nested.c

index 91e4f3cb580a044da941946faf3c0ab128debf62..2c43097248b21453360aab8357563be09792ab85 100644 (file)
@@ -296,8 +296,10 @@ static int walk_nested_s2_pgd(struct kvm_vcpu *vcpu, phys_addr_t ipa,
 
                paddr = base_addr | index;
                ret = read_guest_s2_desc(vcpu, paddr, &desc, wi);
-               if (ret < 0)
+               if (ret < 0) {
+                       out->esr = ESR_ELx_FSC_SEA_TTW(level);
                        return ret;
+               }
 
                new_desc = desc;