The additional entry in struct ReadInfo is only used to set sclp_facilities where we are aware where these bits actually are in _read_info. So it is more readable to directly check the bit here. While at it order feat checks by byte and bit. Reviewed-by: Janosch Frank Reviewed-by: Nico Boehr Signed-off-by: Christoph Schlameuss --- lib/s390x/sclp.c | 3 +-- lib/s390x/sclp.h | 3 +-- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/lib/s390x/sclp.c b/lib/s390x/sclp.c index 1ffcf448e558..9d9fd3cbcb8c 100644 --- a/lib/s390x/sclp.c +++ b/lib/s390x/sclp.c @@ -157,8 +157,6 @@ void sclp_facilities_setup(void) assert(read_info); cpu = sclp_get_cpu_entries(); - if (read_info->offset_cpu > 134) - sclp_facilities.has_diag318 = read_info->byte_134_diag318; sclp_facilities.has_sop = sclp_feat_check(80, SCLP_FEAT_80_BIT_SOP); sclp_facilities.has_gsls = sclp_feat_check(85, SCLP_FEAT_85_BIT_GSLS); sclp_facilities.has_esop = sclp_feat_check(85, SCLP_FEAT_85_BIT_ESOP); @@ -168,6 +166,7 @@ void sclp_facilities_setup(void) sclp_facilities.has_esca = sclp_feat_check(116, SCLP_FEAT_116_BIT_ESCA); sclp_facilities.has_ibs = sclp_feat_check(117, SCLP_FEAT_117_BIT_IBS); sclp_facilities.has_pfmfi = sclp_feat_check(117, SCLP_FEAT_117_BIT_PFMFI); + sclp_facilities.has_diag318 = sclp_feat_check(134, SCLP_FEAT_134_BIT_DIAG318); for (i = 0; i < read_info->entries_cpu; i++, cpu++) { /* diff --git a/lib/s390x/sclp.h b/lib/s390x/sclp.h index 42a2f2e9f25a..87af429b5798 100644 --- a/lib/s390x/sclp.h +++ b/lib/s390x/sclp.h @@ -144,6 +144,7 @@ struct sclp_facilities { #define SCLP_FEAT_116_BIT_ESCA 4 #define SCLP_FEAT_117_BIT_PFMFI 1 #define SCLP_FEAT_117_BIT_IBS 2 +#define SCLP_FEAT_134_BIT_DIAG318 0 typedef struct ReadInfo { SCCBHeader h; @@ -169,8 +170,6 @@ typedef struct ReadInfo { uint8_t _reserved5[124 - 122]; /* 122-123 */ uint32_t hmfai; uint8_t reserved7[134 - 128]; /* 128-133 */ - uint8_t byte_134_diag318 : 1; - uint8_t : 7; /* * At the end of the ReadInfo, there are also the CPU entries (see * struct CPUEntry). When the Extended-Length SCCB (ELS) feature is -- 2.53.0