commit 5ec01c2e96910e1588d1a0de8609b9dda7618c7f broke "-cpu ..,enforce", as it has moved kvm_check_features_against_host() after the filter_features_for_kvm() call. filter_features_for_kvm() removes all features not supported by the host, so this effectively made kvm_check_features_against_host() impossible to fail.
This patch changes the call so we check for host feature support before filtering the feature bits. Signed-off-by: Eduardo Habkost <ehabk...@redhat.com> Cc: Igor Mammedov <imamm...@redhat.com> --- target-i386/cpu.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/target-i386/cpu.c b/target-i386/cpu.c index 9ee5b3d..8fe8bc7 100644 --- a/target-i386/cpu.c +++ b/target-i386/cpu.c @@ -2132,14 +2132,14 @@ static void x86_cpu_realizefn(DeviceState *dev, Error **errp) env->cpuid_ext3_features &= TCG_EXT3_FEATURES; env->cpuid_svm_features &= TCG_SVM_FEATURES; } else { -#ifdef CONFIG_KVM - filter_features_for_kvm(cpu); -#endif if (check_cpuid && kvm_check_features_against_host(cpu) && enforce_cpuid) { error_setg(errp, "Host's CPU doesn't support requested features"); return; } +#ifdef CONFIG_KVM + filter_features_for_kvm(cpu); +#endif } #ifndef CONFIG_USER_ONLY -- 1.8.1.4