From: Eric Farman <farman@linux.ibm.com>
To: qemu-devel@nongnu.org
Cc: qemu-s390x@nongnu.org, Matthew Rosato <mjrosato@linux.ibm.com>,
Cornelia Huck <cohuck@redhat.com>,
Collin Walling <walling@linux.ibm.com>,
Hendrik Brueckner <brueckner@linux.ibm.com>,
Eric Farman <farman@linux.ibm.com>
Subject: [PULL 1/6] target/s390x: externalize feat dependency array
Date: Mon, 26 Oct 2026 10:01:48 -0400 [thread overview]
Message-ID: <20261026140153.2072253-2-farman@linux.ibm.com> (raw)
In-Reply-To: <20261026140153.2072253-1-farman@linux.ibm.com>
From: Collin Walling <walling@linux.ibm.com>
Move the feature dependency array (dep[][2]) from cpu_models.c to
cpu_features.c, rename the array to s390_feat_deps, and externalize
its length.
This will allow the array to be used between both files.
Signed-off-by: Collin Walling <walling@linux.ibm.com>
Reviewed-by: Hendrik Brueckner <brueckner@linux.ibm.com>
Reviewed-by: Matthew Rosato <mjrosato@linux.ibm.com>
Reviewed-by: Eric Farman <farman@linux.ibm.com>
Link: https://lore.kernel.org/qemu-devel/20261009185559.144750-2-walling@linux.ibm.com
Signed-off-by: Eric Farman <farman@linux.ibm.com>
---
target/s390x/cpu_features.c | 126 ++++++++++++++++++++++++++++++++++
target/s390x/cpu_features.h | 4 ++
target/s390x/cpu_models.c | 133 ++----------------------------------
3 files changed, 135 insertions(+), 128 deletions(-)
diff --git a/target/s390x/cpu_features.c b/target/s390x/cpu_features.c
index c634e74123..20f9947c7b 100644
--- a/target/s390x/cpu_features.c
+++ b/target/s390x/cpu_features.c
@@ -223,6 +223,132 @@ void s390_feat_bitmap_to_ascii(const S390FeatBitmap features, void *opaque,
};
}
+const int s390_feat_deps[][2] = {
+ { S390_FEAT_IPTE_RANGE, S390_FEAT_DAT_ENH },
+ { S390_FEAT_IDTE_SEGMENT, S390_FEAT_DAT_ENH },
+ { S390_FEAT_IDTE_REGION, S390_FEAT_DAT_ENH },
+ { S390_FEAT_IDTE_REGION, S390_FEAT_IDTE_SEGMENT },
+ { S390_FEAT_LOCAL_TLB_CLEARING, S390_FEAT_DAT_ENH},
+ { S390_FEAT_LONG_DISPLACEMENT_FAST, S390_FEAT_LONG_DISPLACEMENT },
+ { S390_FEAT_DFP_FAST, S390_FEAT_DFP },
+ { S390_FEAT_TRANSACTIONAL_EXE, S390_FEAT_STFLE_49 },
+ { S390_FEAT_EDAT_2, S390_FEAT_EDAT},
+ { S390_FEAT_MSA_EXT_5, S390_FEAT_KIMD_SHA_512 },
+ { S390_FEAT_MSA_EXT_5, S390_FEAT_KLMD_SHA_512 },
+ { S390_FEAT_MSA_EXT_4, S390_FEAT_MSA_EXT_3 },
+ { S390_FEAT_SIE_CMMA, S390_FEAT_CMM },
+ { S390_FEAT_SIE_CMMA, S390_FEAT_SIE_GSLS },
+ { S390_FEAT_SIE_PFMFI, S390_FEAT_EDAT },
+ { S390_FEAT_MSA_EXT_8, S390_FEAT_MSA_EXT_3 },
+ { S390_FEAT_MSA_EXT_9, S390_FEAT_MSA_EXT_3 },
+ { S390_FEAT_MSA_EXT_9, S390_FEAT_MSA_EXT_4 },
+ { S390_FEAT_MULTIPLE_EPOCH, S390_FEAT_TOD_CLOCK_STEERING },
+ { S390_FEAT_VECTOR_PACKED_DECIMAL, S390_FEAT_VECTOR },
+ { S390_FEAT_VECTOR_PACKED_DECIMAL_ENH, S390_FEAT_VECTOR_PACKED_DECIMAL },
+ { S390_FEAT_VECTOR_PACKED_DECIMAL_ENH2, S390_FEAT_VECTOR_PACKED_DECIMAL_ENH },
+ { S390_FEAT_VECTOR_PACKED_DECIMAL_ENH3, S390_FEAT_VECTOR_PACKED_DECIMAL_ENH2 },
+ { S390_FEAT_VECTOR_ENH, S390_FEAT_VECTOR },
+ { S390_FEAT_VECTOR_ENH2, S390_FEAT_VECTOR_ENH },
+ { S390_FEAT_VECTOR_ENH3, S390_FEAT_VECTOR_ENH2 },
+ { S390_FEAT_INSTRUCTION_EXEC_PROT, S390_FEAT_SIDE_EFFECT_ACCESS_ESOP2 },
+ { S390_FEAT_SIDE_EFFECT_ACCESS_ESOP2, S390_FEAT_ESOP },
+ { S390_FEAT_CMM_NT, S390_FEAT_CMM },
+ { S390_FEAT_GUARDED_STORAGE, S390_FEAT_SIDE_EFFECT_ACCESS_ESOP2 },
+ { S390_FEAT_MULTIPLE_EPOCH, S390_FEAT_STORE_CLOCK_FAST },
+ { S390_FEAT_MULTIPLE_EPOCH, S390_FEAT_TOD_CLOCK_STEERING },
+ { S390_FEAT_SEMAPHORE_ASSIST, S390_FEAT_STFLE_49 },
+ { S390_FEAT_KIMD_SHA3_224, S390_FEAT_MSA },
+ { S390_FEAT_KIMD_SHA3_256, S390_FEAT_MSA },
+ { S390_FEAT_KIMD_SHA3_384, S390_FEAT_MSA },
+ { S390_FEAT_KIMD_SHA3_512, S390_FEAT_MSA },
+ { S390_FEAT_KIMD_SHAKE_128, S390_FEAT_MSA },
+ { S390_FEAT_KIMD_SHAKE_256, S390_FEAT_MSA },
+ { S390_FEAT_KLMD_SHA3_224, S390_FEAT_MSA },
+ { S390_FEAT_KLMD_SHA3_256, S390_FEAT_MSA },
+ { S390_FEAT_KLMD_SHA3_384, S390_FEAT_MSA },
+ { S390_FEAT_KLMD_SHA3_512, S390_FEAT_MSA },
+ { S390_FEAT_KLMD_SHAKE_128, S390_FEAT_MSA },
+ { S390_FEAT_KLMD_SHAKE_256, S390_FEAT_MSA },
+ { S390_FEAT_KMAC_HMAC_SHA_224, S390_FEAT_MSA_EXT_3 },
+ { S390_FEAT_KMAC_HMAC_SHA_256, S390_FEAT_MSA_EXT_3 },
+ { S390_FEAT_KMAC_HMAC_SHA_384, S390_FEAT_MSA_EXT_3 },
+ { S390_FEAT_KMAC_HMAC_SHA_512, S390_FEAT_MSA_EXT_3 },
+ { S390_FEAT_KMAC_HMAC_ESHA_224, S390_FEAT_MSA_EXT_3 },
+ { S390_FEAT_KMAC_HMAC_ESHA_256, S390_FEAT_MSA_EXT_3 },
+ { S390_FEAT_KMAC_HMAC_ESHA_384, S390_FEAT_MSA_EXT_3 },
+ { S390_FEAT_KMAC_HMAC_ESHA_512, S390_FEAT_MSA_EXT_3 },
+ { S390_FEAT_KM_FULL_XTS_AES_128, S390_FEAT_MSA_EXT_4 },
+ { S390_FEAT_KM_FULL_XTS_AES_256, S390_FEAT_MSA_EXT_4 },
+ { S390_FEAT_KM_FULL_XTS_EAES_128, S390_FEAT_MSA_EXT_4 },
+ { S390_FEAT_KM_FULL_XTS_EAES_256, S390_FEAT_MSA_EXT_4 },
+ { S390_FEAT_PRNO_TRNG_QRTCR, S390_FEAT_MSA_EXT_5 },
+ { S390_FEAT_PRNO_TRNG, S390_FEAT_MSA_EXT_5 },
+ { S390_FEAT_SIE_KSS, S390_FEAT_SIE_F2 },
+ { S390_FEAT_AP_QUERY_CONFIG_INFO, S390_FEAT_AP },
+ { S390_FEAT_AP_FACILITIES_TEST, S390_FEAT_AP },
+ { S390_FEAT_PTFF_QSIE, S390_FEAT_MULTIPLE_EPOCH },
+ { S390_FEAT_PTFF_QTOUE, S390_FEAT_MULTIPLE_EPOCH },
+ { S390_FEAT_PTFF_STOE, S390_FEAT_MULTIPLE_EPOCH },
+ { S390_FEAT_PTFF_STOUE, S390_FEAT_MULTIPLE_EPOCH },
+ { S390_FEAT_AP_QUEUE_INTERRUPT_CONTROL, S390_FEAT_AP },
+ { S390_FEAT_DIAG_318, S390_FEAT_EXTENDED_LENGTH_SCCB },
+ { S390_FEAT_CERT_STORE, S390_FEAT_EXTENDED_LENGTH_SCCB },
+ { S390_FEAT_SIPL, S390_FEAT_EXTENDED_LENGTH_SCCB },
+ { S390_FEAT_SCLAF, S390_FEAT_EXTENDED_LENGTH_SCCB },
+ { S390_FEAT_SCLAF, S390_FEAT_SIPL },
+ { S390_FEAT_NNPA, S390_FEAT_VECTOR },
+ { S390_FEAT_RDP, S390_FEAT_LOCAL_TLB_CLEARING },
+ { S390_FEAT_UV_FEAT_AP, S390_FEAT_AP },
+ { S390_FEAT_UV_FEAT_AP_INTR, S390_FEAT_UV_FEAT_AP },
+ { S390_FEAT_PFCR_QAF, S390_FEAT_CCF_BASE },
+ { S390_FEAT_PFCR_CSDST, S390_FEAT_CCF_BASE },
+ { S390_FEAT_PFCR_CSDSTG, S390_FEAT_CCF_BASE },
+ { S390_FEAT_PFCR_CSTST, S390_FEAT_CCF_BASE },
+ { S390_FEAT_PFCR_CSTSTG, S390_FEAT_CCF_BASE },
+ { S390_FEAT_INEFF_NC_TX, S390_FEAT_TRANSACTIONAL_EXE },
+ { S390_FEAT_PLO_CLO, S390_FEAT_PLO_EXT },
+ { S390_FEAT_PLO_CSO, S390_FEAT_PLO_EXT },
+ { S390_FEAT_PLO_DCSO, S390_FEAT_PLO_EXT },
+ { S390_FEAT_PLO_CSSTO, S390_FEAT_PLO_EXT },
+ { S390_FEAT_PLO_CSDSTO, S390_FEAT_PLO_EXT },
+ { S390_FEAT_PLO_CSTSTO, S390_FEAT_PLO_EXT },
+ { S390_FEAT_PLO_TCS, S390_FEAT_PLO_EXT },
+ { S390_FEAT_PLO_TCSG, S390_FEAT_PLO_EXT },
+ { S390_FEAT_PLO_TCSX, S390_FEAT_PLO_EXT },
+ { S390_FEAT_PLO_TCSO, S390_FEAT_PLO_EXT },
+ { S390_FEAT_PLO_QCS, S390_FEAT_PLO_EXT },
+ { S390_FEAT_PLO_QCSG, S390_FEAT_PLO_EXT },
+ { S390_FEAT_PLO_QCSX, S390_FEAT_PLO_EXT },
+ { S390_FEAT_PLO_QCSO, S390_FEAT_PLO_EXT },
+ { S390_FEAT_PLO_LO, S390_FEAT_PLO_EXT },
+ { S390_FEAT_PLO_DLX, S390_FEAT_PLO_EXT },
+ { S390_FEAT_PLO_DLO, S390_FEAT_PLO_EXT },
+ { S390_FEAT_PLO_TL, S390_FEAT_PLO_EXT },
+ { S390_FEAT_PLO_TLG, S390_FEAT_PLO_EXT },
+ { S390_FEAT_PLO_TLX, S390_FEAT_PLO_EXT },
+ { S390_FEAT_PLO_TLO, S390_FEAT_PLO_EXT },
+ { S390_FEAT_PLO_QL, S390_FEAT_PLO_EXT },
+ { S390_FEAT_PLO_QLG, S390_FEAT_PLO_EXT },
+ { S390_FEAT_PLO_QLX, S390_FEAT_PLO_EXT },
+ { S390_FEAT_PLO_QLO, S390_FEAT_PLO_EXT },
+ { S390_FEAT_PLO_STO, S390_FEAT_PLO_EXT },
+ { S390_FEAT_PLO_DST, S390_FEAT_PLO_EXT },
+ { S390_FEAT_PLO_DSTG, S390_FEAT_PLO_EXT },
+ { S390_FEAT_PLO_DSTX, S390_FEAT_PLO_EXT },
+ { S390_FEAT_PLO_DSTO, S390_FEAT_PLO_EXT },
+ { S390_FEAT_PLO_TST, S390_FEAT_PLO_EXT },
+ { S390_FEAT_PLO_TSTG, S390_FEAT_PLO_EXT },
+ { S390_FEAT_PLO_TSTX, S390_FEAT_PLO_EXT },
+ { S390_FEAT_PLO_TSTO, S390_FEAT_PLO_EXT },
+ { S390_FEAT_PLO_QST, S390_FEAT_PLO_EXT },
+ { S390_FEAT_PLO_QSTG, S390_FEAT_PLO_EXT },
+ { S390_FEAT_PLO_QSTX, S390_FEAT_PLO_EXT },
+ { S390_FEAT_PLO_QSTO, S390_FEAT_PLO_EXT },
+ { S390_FEAT_SIE_ASTFLEIE2, S390_FEAT_STFLE },
+};
+
+const size_t s390_feat_deps_len = ARRAY_SIZE(s390_feat_deps);
+
void s390_get_deprecated_features(S390FeatBitmap features)
{
static const int feats[] = {
diff --git a/target/s390x/cpu_features.h b/target/s390x/cpu_features.h
index 421978faa4..8097b21959 100644
--- a/target/s390x/cpu_features.h
+++ b/target/s390x/cpu_features.h
@@ -57,6 +57,10 @@ typedef struct {
int bit; /* bit within the feature type area (fixed) */
} S390FeatDef;
+/* Tuple of features[][0] that depend on other features[][1] */
+extern const int s390_feat_deps[][2];
+extern const size_t s390_feat_deps_len;
+
/* use ordinary bitmap operations to work with features */
typedef unsigned long S390FeatBitmap[BITS_TO_LONGS(S390_FEAT_MAX)];
diff --git a/target/s390x/cpu_models.c b/target/s390x/cpu_models.c
index c41d629d68..c30ea2df17 100644
--- a/target/s390x/cpu_models.c
+++ b/target/s390x/cpu_models.c
@@ -440,137 +440,14 @@ void s390_cpu_list(void)
static void check_consistency(const S390CPUModel *model)
{
- static int dep[][2] = {
- { S390_FEAT_IPTE_RANGE, S390_FEAT_DAT_ENH },
- { S390_FEAT_IDTE_SEGMENT, S390_FEAT_DAT_ENH },
- { S390_FEAT_IDTE_REGION, S390_FEAT_DAT_ENH },
- { S390_FEAT_IDTE_REGION, S390_FEAT_IDTE_SEGMENT },
- { S390_FEAT_LOCAL_TLB_CLEARING, S390_FEAT_DAT_ENH},
- { S390_FEAT_LONG_DISPLACEMENT_FAST, S390_FEAT_LONG_DISPLACEMENT },
- { S390_FEAT_DFP_FAST, S390_FEAT_DFP },
- { S390_FEAT_TRANSACTIONAL_EXE, S390_FEAT_STFLE_49 },
- { S390_FEAT_EDAT_2, S390_FEAT_EDAT},
- { S390_FEAT_MSA_EXT_5, S390_FEAT_KIMD_SHA_512 },
- { S390_FEAT_MSA_EXT_5, S390_FEAT_KLMD_SHA_512 },
- { S390_FEAT_MSA_EXT_4, S390_FEAT_MSA_EXT_3 },
- { S390_FEAT_SIE_CMMA, S390_FEAT_CMM },
- { S390_FEAT_SIE_CMMA, S390_FEAT_SIE_GSLS },
- { S390_FEAT_SIE_PFMFI, S390_FEAT_EDAT },
- { S390_FEAT_MSA_EXT_8, S390_FEAT_MSA_EXT_3 },
- { S390_FEAT_MSA_EXT_9, S390_FEAT_MSA_EXT_3 },
- { S390_FEAT_MSA_EXT_9, S390_FEAT_MSA_EXT_4 },
- { S390_FEAT_MULTIPLE_EPOCH, S390_FEAT_TOD_CLOCK_STEERING },
- { S390_FEAT_VECTOR_PACKED_DECIMAL, S390_FEAT_VECTOR },
- { S390_FEAT_VECTOR_PACKED_DECIMAL_ENH, S390_FEAT_VECTOR_PACKED_DECIMAL },
- { S390_FEAT_VECTOR_PACKED_DECIMAL_ENH2, S390_FEAT_VECTOR_PACKED_DECIMAL_ENH },
- { S390_FEAT_VECTOR_PACKED_DECIMAL_ENH3, S390_FEAT_VECTOR_PACKED_DECIMAL_ENH2 },
- { S390_FEAT_VECTOR_ENH, S390_FEAT_VECTOR },
- { S390_FEAT_VECTOR_ENH2, S390_FEAT_VECTOR_ENH },
- { S390_FEAT_VECTOR_ENH3, S390_FEAT_VECTOR_ENH2 },
- { S390_FEAT_INSTRUCTION_EXEC_PROT, S390_FEAT_SIDE_EFFECT_ACCESS_ESOP2 },
- { S390_FEAT_SIDE_EFFECT_ACCESS_ESOP2, S390_FEAT_ESOP },
- { S390_FEAT_CMM_NT, S390_FEAT_CMM },
- { S390_FEAT_GUARDED_STORAGE, S390_FEAT_SIDE_EFFECT_ACCESS_ESOP2 },
- { S390_FEAT_MULTIPLE_EPOCH, S390_FEAT_STORE_CLOCK_FAST },
- { S390_FEAT_MULTIPLE_EPOCH, S390_FEAT_TOD_CLOCK_STEERING },
- { S390_FEAT_SEMAPHORE_ASSIST, S390_FEAT_STFLE_49 },
- { S390_FEAT_KIMD_SHA3_224, S390_FEAT_MSA },
- { S390_FEAT_KIMD_SHA3_256, S390_FEAT_MSA },
- { S390_FEAT_KIMD_SHA3_384, S390_FEAT_MSA },
- { S390_FEAT_KIMD_SHA3_512, S390_FEAT_MSA },
- { S390_FEAT_KIMD_SHAKE_128, S390_FEAT_MSA },
- { S390_FEAT_KIMD_SHAKE_256, S390_FEAT_MSA },
- { S390_FEAT_KLMD_SHA3_224, S390_FEAT_MSA },
- { S390_FEAT_KLMD_SHA3_256, S390_FEAT_MSA },
- { S390_FEAT_KLMD_SHA3_384, S390_FEAT_MSA },
- { S390_FEAT_KLMD_SHA3_512, S390_FEAT_MSA },
- { S390_FEAT_KLMD_SHAKE_128, S390_FEAT_MSA },
- { S390_FEAT_KLMD_SHAKE_256, S390_FEAT_MSA },
- { S390_FEAT_KMAC_HMAC_SHA_224, S390_FEAT_MSA_EXT_3 },
- { S390_FEAT_KMAC_HMAC_SHA_256, S390_FEAT_MSA_EXT_3 },
- { S390_FEAT_KMAC_HMAC_SHA_384, S390_FEAT_MSA_EXT_3 },
- { S390_FEAT_KMAC_HMAC_SHA_512, S390_FEAT_MSA_EXT_3 },
- { S390_FEAT_KMAC_HMAC_ESHA_224, S390_FEAT_MSA_EXT_3 },
- { S390_FEAT_KMAC_HMAC_ESHA_256, S390_FEAT_MSA_EXT_3 },
- { S390_FEAT_KMAC_HMAC_ESHA_384, S390_FEAT_MSA_EXT_3 },
- { S390_FEAT_KMAC_HMAC_ESHA_512, S390_FEAT_MSA_EXT_3 },
- { S390_FEAT_KM_FULL_XTS_AES_128, S390_FEAT_MSA_EXT_4 },
- { S390_FEAT_KM_FULL_XTS_AES_256, S390_FEAT_MSA_EXT_4 },
- { S390_FEAT_KM_FULL_XTS_EAES_128, S390_FEAT_MSA_EXT_4 },
- { S390_FEAT_KM_FULL_XTS_EAES_256, S390_FEAT_MSA_EXT_4 },
- { S390_FEAT_PRNO_TRNG_QRTCR, S390_FEAT_MSA_EXT_5 },
- { S390_FEAT_PRNO_TRNG, S390_FEAT_MSA_EXT_5 },
- { S390_FEAT_SIE_KSS, S390_FEAT_SIE_F2 },
- { S390_FEAT_AP_QUERY_CONFIG_INFO, S390_FEAT_AP },
- { S390_FEAT_AP_FACILITIES_TEST, S390_FEAT_AP },
- { S390_FEAT_PTFF_QSIE, S390_FEAT_MULTIPLE_EPOCH },
- { S390_FEAT_PTFF_QTOUE, S390_FEAT_MULTIPLE_EPOCH },
- { S390_FEAT_PTFF_STOE, S390_FEAT_MULTIPLE_EPOCH },
- { S390_FEAT_PTFF_STOUE, S390_FEAT_MULTIPLE_EPOCH },
- { S390_FEAT_AP_QUEUE_INTERRUPT_CONTROL, S390_FEAT_AP },
- { S390_FEAT_DIAG_318, S390_FEAT_EXTENDED_LENGTH_SCCB },
- { S390_FEAT_CERT_STORE, S390_FEAT_EXTENDED_LENGTH_SCCB },
- { S390_FEAT_SIPL, S390_FEAT_EXTENDED_LENGTH_SCCB },
- { S390_FEAT_SCLAF, S390_FEAT_EXTENDED_LENGTH_SCCB },
- { S390_FEAT_SCLAF, S390_FEAT_SIPL },
- { S390_FEAT_NNPA, S390_FEAT_VECTOR },
- { S390_FEAT_RDP, S390_FEAT_LOCAL_TLB_CLEARING },
- { S390_FEAT_UV_FEAT_AP, S390_FEAT_AP },
- { S390_FEAT_UV_FEAT_AP_INTR, S390_FEAT_UV_FEAT_AP },
- { S390_FEAT_PFCR_QAF, S390_FEAT_CCF_BASE },
- { S390_FEAT_PFCR_CSDST, S390_FEAT_CCF_BASE },
- { S390_FEAT_PFCR_CSDSTG, S390_FEAT_CCF_BASE },
- { S390_FEAT_PFCR_CSTST, S390_FEAT_CCF_BASE },
- { S390_FEAT_PFCR_CSTSTG, S390_FEAT_CCF_BASE },
- { S390_FEAT_INEFF_NC_TX, S390_FEAT_TRANSACTIONAL_EXE },
- { S390_FEAT_PLO_CLO, S390_FEAT_PLO_EXT },
- { S390_FEAT_PLO_CSO, S390_FEAT_PLO_EXT },
- { S390_FEAT_PLO_DCSO, S390_FEAT_PLO_EXT },
- { S390_FEAT_PLO_CSSTO, S390_FEAT_PLO_EXT },
- { S390_FEAT_PLO_CSDSTO, S390_FEAT_PLO_EXT },
- { S390_FEAT_PLO_CSTSTO, S390_FEAT_PLO_EXT },
- { S390_FEAT_PLO_TCS, S390_FEAT_PLO_EXT },
- { S390_FEAT_PLO_TCSG, S390_FEAT_PLO_EXT },
- { S390_FEAT_PLO_TCSX, S390_FEAT_PLO_EXT },
- { S390_FEAT_PLO_TCSO, S390_FEAT_PLO_EXT },
- { S390_FEAT_PLO_QCS, S390_FEAT_PLO_EXT },
- { S390_FEAT_PLO_QCSG, S390_FEAT_PLO_EXT },
- { S390_FEAT_PLO_QCSX, S390_FEAT_PLO_EXT },
- { S390_FEAT_PLO_QCSO, S390_FEAT_PLO_EXT },
- { S390_FEAT_PLO_LO, S390_FEAT_PLO_EXT },
- { S390_FEAT_PLO_DLX, S390_FEAT_PLO_EXT },
- { S390_FEAT_PLO_DLO, S390_FEAT_PLO_EXT },
- { S390_FEAT_PLO_TL, S390_FEAT_PLO_EXT },
- { S390_FEAT_PLO_TLG, S390_FEAT_PLO_EXT },
- { S390_FEAT_PLO_TLX, S390_FEAT_PLO_EXT },
- { S390_FEAT_PLO_TLO, S390_FEAT_PLO_EXT },
- { S390_FEAT_PLO_QL, S390_FEAT_PLO_EXT },
- { S390_FEAT_PLO_QLG, S390_FEAT_PLO_EXT },
- { S390_FEAT_PLO_QLX, S390_FEAT_PLO_EXT },
- { S390_FEAT_PLO_QLO, S390_FEAT_PLO_EXT },
- { S390_FEAT_PLO_STO, S390_FEAT_PLO_EXT },
- { S390_FEAT_PLO_DST, S390_FEAT_PLO_EXT },
- { S390_FEAT_PLO_DSTG, S390_FEAT_PLO_EXT },
- { S390_FEAT_PLO_DSTX, S390_FEAT_PLO_EXT },
- { S390_FEAT_PLO_DSTO, S390_FEAT_PLO_EXT },
- { S390_FEAT_PLO_TST, S390_FEAT_PLO_EXT },
- { S390_FEAT_PLO_TSTG, S390_FEAT_PLO_EXT },
- { S390_FEAT_PLO_TSTX, S390_FEAT_PLO_EXT },
- { S390_FEAT_PLO_TSTO, S390_FEAT_PLO_EXT },
- { S390_FEAT_PLO_QST, S390_FEAT_PLO_EXT },
- { S390_FEAT_PLO_QSTG, S390_FEAT_PLO_EXT },
- { S390_FEAT_PLO_QSTX, S390_FEAT_PLO_EXT },
- { S390_FEAT_PLO_QSTO, S390_FEAT_PLO_EXT },
- { S390_FEAT_SIE_ASTFLEIE2, S390_FEAT_STFLE },
- };
int i;
- for (i = 0; i < ARRAY_SIZE(dep); i++) {
- if (test_bit(dep[i][0], model->features) &&
- !test_bit(dep[i][1], model->features)) {
+ for (i = 0; i < s390_feat_deps_len; i++) {
+ if (test_bit(s390_feat_deps[i][0], model->features) &&
+ !test_bit(s390_feat_deps[i][1], model->features)) {
warn_report("\'%s\' requires \'%s\'.",
- s390_feat_def(dep[i][0])->name,
- s390_feat_def(dep[i][1])->name);
+ s390_feat_def(s390_feat_deps[i][0])->name,
+ s390_feat_def(s390_feat_deps[i][1])->name);
}
}
}
--
2.56.0
next prev parent reply other threads:[~2026-10-26 14:07 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-10-26 14:01 [PULL 0/6] s390x queue for 11.2 Eric Farman
2026-10-26 14:01 ` Eric Farman [this message]
2026-10-26 14:01 ` [PULL 2/6] target/s390x: mark feats dependent on deprecated feats as deprecated Eric Farman
2026-10-26 14:01 ` [PULL 3/6] s390x/sclpconsole: implement resizing for vt220 consoles Eric Farman
2026-10-26 14:01 ` [PULL 4/6] s390x/pci: reclaim DMA slots upon IOMMU disable Eric Farman
2026-10-26 14:01 ` [PULL 5/6] MAINTAINERS: Add other s390x tree Eric Farman
2026-10-26 14:01 ` [PULL 6/6] MAINTAINERS: Update s390 boot reviewer Eric Farman
2026-10-27 22:25 ` [PULL 0/6] s390x queue for 11.2 Richard Henderson
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20261026140153.2072253-2-farman@linux.ibm.com \
--to=farman@linux.ibm.com \
--cc=brueckner@linux.ibm.com \
--cc=cohuck@redhat.com \
--cc=mjrosato@linux.ibm.com \
--cc=qemu-devel@nongnu.org \
--cc=qemu-s390x@nongnu.org \
--cc=walling@linux.ibm.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.