]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
KVM: arm64: vgic-v5: Add missing trap handing for NV triage
authorSascha Bischoff <sascha.bischoff@arm.com>
Wed, 20 May 2026 09:19:41 +0000 (10:19 +0100)
committerMarc Zyngier <maz@kernel.org>
Sat, 23 May 2026 14:07:16 +0000 (15:07 +0100)
As things stand, there is no support for Nested Virt with GICv5 guests
yet. However, this is coming and therefore we need to be able to
correctly triage the traps when running with NV.

Add the missing fgtreg lookups required for that to
triage_sysreg_trap(). These are specific to the FGT regs added as part
of GICv5:
   * ICH_HFGRTR_EL2
   * ICH_HFGWTR_EL2
   * ICH_HFGITR_EL2

Fixes: 9d6d9514c08f ("KVM: arm64: gic-v5: Support GICv5 FGTs & FGUs")
Link: https://sashiko.dev/#/patchset/20260319154937.3619520-1-sascha.bischoff%40arm.com
Signed-off-by: Sascha Bischoff <sascha.bischoff@arm.com>
Reviewed-by: Joey Gouly <joey.gouly@arm.com>
Link: https://lore.kernel.org/r/20260520091949.542365-11-maz@kernel.org
Signed-off-by: Marc Zyngier <maz@kernel.org>
arch/arm64/kvm/emulate-nested.c

index dba7ced74ca5e80607b964ed27f93b748943fac9..a4eb36b4c4421ed56c3d0b6c0556db868c479b38 100644 (file)
@@ -2631,6 +2631,14 @@ bool triage_sysreg_trap(struct kvm_vcpu *vcpu, int *sr_index)
                fgtreg = HFGITR2_EL2;
                break;
 
+       case ICH_HFGRTR_GROUP:
+               fgtreg = is_read ? ICH_HFGRTR_EL2 : ICH_HFGWTR_EL2;
+               break;
+
+       case ICH_HFGITR_GROUP:
+               fgtreg = ICH_HFGITR_EL2;
+               break;
+
        default:
                /* Something is really wrong, bail out */
                WARN_ONCE(1, "Bad FGT group (encoding %08x, config %016llx)\n",