KVM: arm64: Add missing HFGxTR_EL2 FGT entries to nested virt
authorFuad Tabba <tabba@google.com>
Thu, 14 Dec 2023 10:01:46 +0000 (10:01 +0000)
committerMarc Zyngier <maz@kernel.org>
Mon, 18 Dec 2023 09:22:32 +0000 (09:22 +0000)
Add the missing nested virt FGT table entries HFGxTR_EL2. Based
on DDI0601 2023-09.

Signed-off-by: Fuad Tabba <tabba@google.com>
Signed-off-by: Marc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/r/20231214100158.2305400-7-tabba@google.com
arch/arm64/kvm/emulate-nested.c

index 06185216a297dd1ca085fd471000dc53f02008df..8b473a1bbc1100757f6694fe623490af37a3629e 100644 (file)
@@ -1042,10 +1042,20 @@ enum fg_filter_id {
 
 static const struct encoding_to_trap_config encoding_to_fgt[] __initconst = {
        /* HFGRTR_EL2, HFGWTR_EL2 */
+       SR_FGT(SYS_AMAIR2_EL1,          HFGxTR, nAMAIR2_EL1, 0),
+       SR_FGT(SYS_MAIR2_EL1,           HFGxTR, nMAIR2_EL1, 0),
+       SR_FGT(SYS_S2POR_EL1,           HFGxTR, nS2POR_EL1, 0),
+       SR_FGT(SYS_POR_EL1,             HFGxTR, nPOR_EL1, 0),
+       SR_FGT(SYS_POR_EL0,             HFGxTR, nPOR_EL0, 0),
        SR_FGT(SYS_PIR_EL1,             HFGxTR, nPIR_EL1, 0),
        SR_FGT(SYS_PIRE0_EL1,           HFGxTR, nPIRE0_EL1, 0),
+       SR_FGT(SYS_RCWMASK_EL1,         HFGxTR, nRCWMASK_EL1, 0),
        SR_FGT(SYS_TPIDR2_EL0,          HFGxTR, nTPIDR2_EL0, 0),
        SR_FGT(SYS_SMPRI_EL1,           HFGxTR, nSMPRI_EL1, 0),
+       SR_FGT(SYS_GCSCR_EL1,           HFGxTR, nGCS_EL1, 0),
+       SR_FGT(SYS_GCSPR_EL1,           HFGxTR, nGCS_EL1, 0),
+       SR_FGT(SYS_GCSCRE0_EL1,         HFGxTR, nGCS_EL0, 0),
+       SR_FGT(SYS_GCSPR_EL0,           HFGxTR, nGCS_EL0, 0),
        SR_FGT(SYS_ACCDATA_EL1,         HFGxTR, nACCDATA_EL1, 0),
        SR_FGT(SYS_ERXADDR_EL1,         HFGxTR, ERXADDR_EL1, 1),
        SR_FGT(SYS_ERXPFGCDN_EL1,       HFGxTR, ERXPFGCDN_EL1, 1),