val |= FIELD_PREP(ARM64_FEATURE_MASK(ID_AA64PFR0_CSV3), (u64)vcpu->kvm->arch.pfr0_csv3);
                break;
        case SYS_ID_AA64PFR1_EL1:
-               val &= ~ARM64_FEATURE_MASK(ID_AA64PFR1_MTE);
-               if (kvm_has_mte(vcpu->kvm)) {
-                       u64 pfr, mte;
-
-                       pfr = read_sanitised_ftr_reg(SYS_ID_AA64PFR1_EL1);
-                       mte = cpuid_feature_extract_unsigned_field(pfr, ID_AA64PFR1_MTE_SHIFT);
-                       val |= FIELD_PREP(ARM64_FEATURE_MASK(ID_AA64PFR1_MTE), mte);
-               }
+               if (!kvm_has_mte(vcpu->kvm))
+                       val &= ~ARM64_FEATURE_MASK(ID_AA64PFR1_MTE);
                break;
        case SYS_ID_AA64ISAR1_EL1:
                if (!vcpu_has_ptrauth(vcpu))