On 28.04.20 18:34, Markus Armbruster wrote: > Both s390_features[S390_FEAT_PCC_CMAC_AES_256].name and > s390_features[S390_FEAT_PCC_CMAC_EAES_256].name is > "pcc-cmac-eaes-256". The former is obviously a pasto. > > Impact: > > * s390_feat_bitmap_to_ascii() misidentifies S390_FEAT_PCC_CMAC_AES_256 > as "pcc-cmac-eaes-256". Affects QMP commands query-cpu-definitions, > query-cpu-model-expansion, query-cpu-model-baseline, > query-cpu-model-comparison, and the error message when > s390_realize_cpu_model() fails in check_compatibility(). > > * s390_realize_cpu_model() misidentifies it in check_consistency() > warnings. > > * s390_cpu_list() likewise. Affects -cpu help. > > * s390_cpu_model_register_props() creates CPU property > "pcc-cmac-eaes-256" twice. The second one fails, but the error is > ignored (a later commit will change that). Results in a single > property "pcc-cmac-eaes-256" with the description for > S390_FEAT_PCC_CMAC_AES_256, and no property for > S390_FEAT_PCC_CMAC_EAES_256. CPU properties are visible in CLI -cpu > and -device, QMP & HMP device_add, QMP device-list-properties, and > QOM introspection. > > Fix by deleting the wayward 'e'.
Very nice catch - thanks! While this sounds very bad, it's luckily not that bad in practice (currently). The feature (or rather, both features) is part of the feature group "msa4". As long as we have all sub-features part of that group (which is usually the case), we will always indicate "msa4" to the user, instead of all the separate sub-features. So, expansion, baseline, comparison will usually only work with "msa4". (in addition, current KVM is not capable of actually masking off these sub-features, so it will still, always see the feature, even if not explicitly specified via "-cpu X,pcc-cmac-aes-256=on) I think we should do stable backports. Reviewed-by: David Hildenbrand <da...@redhat.com> > > Fixes: 782417446279717aa85320191a519b51f6d5dd31 > Cc: Halil Pasic <pa...@linux.ibm.com> > Cc: Cornelia Huck <coh...@redhat.com> > Cc: Christian Borntraeger <borntrae...@de.ibm.com> > Cc: Richard Henderson <r...@twiddle.net> > Cc: David Hildenbrand <da...@redhat.com> > Cc: qemu-s3...@nongnu.org > Signed-off-by: Markus Armbruster <arm...@redhat.com> > --- > target/s390x/cpu_features_def.inc.h | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/target/s390x/cpu_features_def.inc.h > b/target/s390x/cpu_features_def.inc.h > index 31dff0d84e..a8d562d688 100644 > --- a/target/s390x/cpu_features_def.inc.h > +++ b/target/s390x/cpu_features_def.inc.h > @@ -310,7 +310,7 @@ DEF_FEAT(PCC_CMAC_ETDEA_192, "pcc-cmac-etdea-128", PCC, > 10, "PCC Compute-Last-Bl > DEF_FEAT(PCC_CMAC_TDEA, "pcc-cmac-etdea-192", PCC, 11, "PCC > Compute-Last-Block-CMAC-Using-EncryptedTDEA-192") > DEF_FEAT(PCC_CMAC_AES_128, "pcc-cmac-aes-128", PCC, 18, "PCC > Compute-Last-Block-CMAC-Using-AES-128") > DEF_FEAT(PCC_CMAC_AES_192, "pcc-cmac-aes-192", PCC, 19, "PCC > Compute-Last-Block-CMAC-Using-AES-192") > -DEF_FEAT(PCC_CMAC_AES_256, "pcc-cmac-eaes-256", PCC, 20, "PCC > Compute-Last-Block-CMAC-Using-AES-256") > +DEF_FEAT(PCC_CMAC_AES_256, "pcc-cmac-aes-256", PCC, 20, "PCC > Compute-Last-Block-CMAC-Using-AES-256") > DEF_FEAT(PCC_CMAC_EAES_128, "pcc-cmac-eaes-128", PCC, 26, "PCC > Compute-Last-Block-CMAC-Using-Encrypted-AES-128") > DEF_FEAT(PCC_CMAC_EAES_192, "pcc-cmac-eaes-192", PCC, 27, "PCC > Compute-Last-Block-CMAC-Using-Encrypted-AES-192") > DEF_FEAT(PCC_CMAC_EAES_256, "pcc-cmac-eaes-256", PCC, 28, "PCC > Compute-Last-Block-CMAC-Using-Encrypted-AES-256") > -- Thanks, David / dhildenb