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 <jdenemar@redhat.com>
Signed-off-by: Collin Walling <walling@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);
+ }
+