Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

KVM: arm64: Correctly handle SCTLR_EL1 RES1 bits for unsupported features

A bunch of SCTLR_EL1 bits must be set to RES1 when the controlling
feature is not present. Add the AS_RES1 qualifier where needed.

Reviewed-by: Fuad Tabba <tabba@google.com>
Tested-by: Fuad Tabba <tabba@google.com>
Link: https://patch.msgid.link/20260202184329.2724080-9-maz@kernel.org
Signed-off-by: Marc Zyngier <maz@kernel.org>

+14 -12
+14 -12
arch/arm64/kvm/config.c
··· 1085 1085 tcr2_el2_feat_map, FEAT_TCR2); 1086 1086 1087 1087 static const struct reg_bits_to_feat_map sctlr_el1_feat_map[] = { 1088 - NEEDS_FEAT(SCTLR_EL1_CP15BEN | 1089 - SCTLR_EL1_ITD | 1090 - SCTLR_EL1_SED, 1091 - FEAT_AA32EL0), 1088 + NEEDS_FEAT(SCTLR_EL1_CP15BEN, FEAT_AA32EL0), 1089 + NEEDS_FEAT_FLAG(SCTLR_EL1_ITD | 1090 + SCTLR_EL1_SED, 1091 + AS_RES1, FEAT_AA32EL0), 1092 1092 NEEDS_FEAT(SCTLR_EL1_BT0 | 1093 1093 SCTLR_EL1_BT1, 1094 1094 FEAT_BTI), 1095 1095 NEEDS_FEAT(SCTLR_EL1_CMOW, FEAT_CMOW), 1096 - NEEDS_FEAT(SCTLR_EL1_TSCXT, feat_csv2_2_csv2_1p2), 1097 - NEEDS_FEAT(SCTLR_EL1_EIS | 1098 - SCTLR_EL1_EOS, 1099 - FEAT_ExS), 1096 + NEEDS_FEAT_FLAG(SCTLR_EL1_TSCXT, 1097 + AS_RES1, feat_csv2_2_csv2_1p2), 1098 + NEEDS_FEAT_FLAG(SCTLR_EL1_EIS | 1099 + SCTLR_EL1_EOS, 1100 + AS_RES1, FEAT_ExS), 1100 1101 NEEDS_FEAT(SCTLR_EL1_EnFPM, FEAT_FPMR), 1101 1102 NEEDS_FEAT(SCTLR_EL1_IESB, FEAT_IESB), 1102 1103 NEEDS_FEAT(SCTLR_EL1_EnALS, FEAT_LS64), 1103 1104 NEEDS_FEAT(SCTLR_EL1_EnAS0, FEAT_LS64_ACCDATA), 1104 1105 NEEDS_FEAT(SCTLR_EL1_EnASR, FEAT_LS64_V), 1105 1106 NEEDS_FEAT(SCTLR_EL1_nAA, FEAT_LSE2), 1106 - NEEDS_FEAT(SCTLR_EL1_LSMAOE | 1107 - SCTLR_EL1_nTLSMD, 1108 - FEAT_LSMAOC), 1107 + NEEDS_FEAT_FLAG(SCTLR_EL1_LSMAOE | 1108 + SCTLR_EL1_nTLSMD, 1109 + AS_RES1, FEAT_LSMAOC), 1109 1110 NEEDS_FEAT(SCTLR_EL1_EE, FEAT_MixedEnd), 1110 1111 NEEDS_FEAT(SCTLR_EL1_E0E, feat_mixedendel0), 1111 1112 NEEDS_FEAT(SCTLR_EL1_MSCEn, FEAT_MOPS), ··· 1122 1121 NEEDS_FEAT(SCTLR_EL1_NMI | 1123 1122 SCTLR_EL1_SPINTMASK, 1124 1123 FEAT_NMI), 1125 - NEEDS_FEAT(SCTLR_EL1_SPAN, FEAT_PAN), 1124 + NEEDS_FEAT_FLAG(SCTLR_EL1_SPAN, 1125 + AS_RES1, FEAT_PAN), 1126 1126 NEEDS_FEAT(SCTLR_EL1_EPAN, FEAT_PAN3), 1127 1127 NEEDS_FEAT(SCTLR_EL1_EnDA | 1128 1128 SCTLR_EL1_EnDB |