It is beneficial to provide an interface to retrieve *all* deprecated features in one go. Management applications will need this information to determine which features need to be disabled regardless of the host-model's capabilities.
To remedy this, deprecated features are only filtered during a static expansion. All deperecated features are reported on a full expansion. Suggested-by: Jiri Denemark <jdene...@redhat.com> Signed-off-by: Collin Walling <wall...@linux.ibm.com> --- target/s390x/cpu_models_sysemu.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/target/s390x/cpu_models_sysemu.c b/target/s390x/cpu_models_sysemu.c index 977fbc6522..76d15f2e4d 100644 --- a/target/s390x/cpu_models_sysemu.c +++ b/target/s390x/cpu_models_sysemu.c @@ -211,7 +211,15 @@ static void cpu_info_from_model(CpuModelInfo *info, const S390CPUModel *model, bitmap_zero(bitmap, S390_FEAT_MAX); s390_get_deprecated_features(bitmap); - bitmap_and(bitmap, bitmap, model->def->full_feat, S390_FEAT_MAX); + /* + * For static model expansion, filter out deprecated features that are + * not a subset of the model's feature set. Otherwise, report the entire + * deprecated features list. + */ + if (delta_changes) { + bitmap_and(bitmap, bitmap, model->def->full_feat, S390_FEAT_MAX); + } + s390_feat_bitmap_to_ascii(bitmap, &info->deprecated_props, list_add_feat); info->has_deprecated_props = !!info->deprecated_props; } -- 2.45.1