]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
KVM: arm64: Remove all traces of FEAT_TME
authorMarc Zyngier <maz@kernel.org>
Mon, 2 Feb 2026 18:43:26 +0000 (18:43 +0000)
committerMarc Zyngier <maz@kernel.org>
Thu, 5 Feb 2026 09:02:13 +0000 (09:02 +0000)
FEAT_TME has been dropped from the architecture. Retrospectively.
I'm sure someone is crying somewhere, but most of us won't.

Clean-up time.

Reviewed-by: Fuad Tabba <tabba@google.com>
Tested-by: Fuad Tabba <tabba@google.com>
Link: https://patch.msgid.link/20260202184329.2724080-18-maz@kernel.org
Signed-off-by: Marc Zyngier <maz@kernel.org>
arch/arm64/kvm/config.c
arch/arm64/kvm/nested.c
arch/arm64/tools/sysreg
tools/perf/Documentation/perf-arm-spe.txt
tools/testing/selftests/kvm/arm64/set_id_regs.c

index b37b40744db9470ed123720db7ac5ced632584bb..c1b76a76a5e4e124efbb8bc2f0246f3a0127c59c 100644 (file)
@@ -187,7 +187,6 @@ struct reg_feat_map_desc {
 #define FEAT_RME               ID_AA64PFR0_EL1, RME, IMP
 #define FEAT_MPAM              ID_AA64PFR0_EL1, MPAM, 1
 #define FEAT_S2FWB             ID_AA64MMFR2_EL1, FWB, IMP
-#define FEAT_TME               ID_AA64ISAR0_EL1, TME, IMP
 #define FEAT_TWED              ID_AA64MMFR1_EL1, TWED, IMP
 #define FEAT_E2H0              ID_AA64MMFR4_EL1, E2H0, IMP
 #define FEAT_SRMASK            ID_AA64MMFR4_EL1, SRMASK, IMP
@@ -991,7 +990,6 @@ static const struct reg_bits_to_feat_map hcr_feat_map[] = {
        NEEDS_FEAT(HCR_EL2_FIEN, feat_rasv1p1),
        NEEDS_FEAT(HCR_EL2_GPF, FEAT_RME),
        NEEDS_FEAT(HCR_EL2_FWB, FEAT_S2FWB),
-       NEEDS_FEAT(HCR_EL2_TME, FEAT_TME),
        NEEDS_FEAT(HCR_EL2_TWEDEL       |
                   HCR_EL2_TWEDEn,
                   FEAT_TWED),
@@ -1102,11 +1100,6 @@ static const struct reg_bits_to_feat_map sctlr_el1_feat_map[] = {
        NEEDS_FEAT(SCTLR_EL1_EnRCTX, FEAT_SPECRES),
        NEEDS_FEAT(SCTLR_EL1_DSSBS, FEAT_SSBS),
        NEEDS_FEAT(SCTLR_EL1_TIDCP, FEAT_TIDCP1),
-       NEEDS_FEAT(SCTLR_EL1_TME0       |
-                  SCTLR_EL1_TME        |
-                  SCTLR_EL1_TMT0       |
-                  SCTLR_EL1_TMT,
-                  FEAT_TME),
        NEEDS_FEAT(SCTLR_EL1_TWEDEL     |
                   SCTLR_EL1_TWEDEn,
                   FEAT_TWED),
index 75a23f1c56d13c0e7767c761f2fb9101f69eab0a..96e899dbd9192873780864899399455ee4e4e1e6 100644 (file)
@@ -1505,11 +1505,6 @@ u64 limit_nv_id_reg(struct kvm *kvm, u32 reg, u64 val)
        u64 orig_val = val;
 
        switch (reg) {
-       case SYS_ID_AA64ISAR0_EL1:
-               /* Support everything but TME */
-               val &= ~ID_AA64ISAR0_EL1_TME;
-               break;
-
        case SYS_ID_AA64ISAR1_EL1:
                /* Support everything but LS64 and Spec Invalidation */
                val &= ~(ID_AA64ISAR1_EL1_LS64  |
index 969a75615d612fbeb81819a7185bb8dee0b15572..650d7d477087e824dd023f3ef9d5dc0e3a3cb6b3 100644 (file)
@@ -1856,10 +1856,7 @@ UnsignedEnum     31:28   RDM
        0b0000  NI
        0b0001  IMP
 EndEnum
-UnsignedEnum   27:24   TME
-       0b0000  NI
-       0b0001  IMP
-EndEnum
+Res0   27:24
 UnsignedEnum   23:20   ATOMIC
        0b0000  NI
        0b0010  IMP
@@ -2432,10 +2429,7 @@ Field    57      EPAN
 Field  56      EnALS
 Field  55      EnAS0
 Field  54      EnASR
-Field  53      TME
-Field  52      TME0
-Field  51      TMT
-Field  50      TMT0
+Res0   53:50
 Field  49:46   TWEDEL
 Field  45      TWEDEn
 Field  44      DSSBS
@@ -3840,7 +3834,7 @@ Field     43      NV1
 Field  42      NV
 Field  41      API
 Field  40      APK
-Field  39      TME
+Res0   39
 Field  38      MIOCNCE
 Field  37      TEA
 Field  36      TERR
index 8b02e5b983fa95af5b6fa770f5d88c906db1b677..201a82bec0de4bef155283fe972e6933001011f5 100644 (file)
@@ -176,7 +176,6 @@ and inv_event_filter are:
   bit 10    - Remote access (FEAT_SPEv1p4)
   bit 11    - Misaligned access (FEAT_SPEv1p1)
   bit 12-15 - IMPLEMENTATION DEFINED events (when implemented)
-  bit 16    - Transaction (FEAT_TME)
   bit 17    - Partial or empty SME or SVE predicate (FEAT_SPEv1p1)
   bit 18    - Empty SME or SVE predicate (FEAT_SPEv1p1)
   bit 19    - L2D access (FEAT_SPEv1p4)
index c4815d3658167425268b3c839aa937b04a2620d6..73de5be58bab029a06dd10b1887d6595704391e0 100644 (file)
@@ -91,7 +91,6 @@ static const struct reg_ftr_bits ftr_id_aa64isar0_el1[] = {
        REG_FTR_BITS(FTR_LOWER_SAFE, ID_AA64ISAR0_EL1, SM3, 0),
        REG_FTR_BITS(FTR_LOWER_SAFE, ID_AA64ISAR0_EL1, SHA3, 0),
        REG_FTR_BITS(FTR_LOWER_SAFE, ID_AA64ISAR0_EL1, RDM, 0),
-       REG_FTR_BITS(FTR_LOWER_SAFE, ID_AA64ISAR0_EL1, TME, 0),
        REG_FTR_BITS(FTR_LOWER_SAFE, ID_AA64ISAR0_EL1, ATOMIC, 0),
        REG_FTR_BITS(FTR_LOWER_SAFE, ID_AA64ISAR0_EL1, CRC32, 0),
        REG_FTR_BITS(FTR_LOWER_SAFE, ID_AA64ISAR0_EL1, SHA2, 0),