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 dba7ced..a4eb36b 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",