Message ID | 20220708054227.195038-1-zhenzhong.duan@intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | target/i386: Fix CPU feature dependency check | expand |
diff --git a/target/i386/cpu.c b/target/i386/cpu.c index 6a57ef13af86..b64c0b37f0cb 100644 --- a/target/i386/cpu.c +++ b/target/i386/cpu.c @@ -6206,6 +6206,9 @@ void x86_cpu_expand_features(X86CPU *cpu, Error **errp) unavailable_features & env->user_features[d->to.index], "This feature depends on other features that were not requested"); + if (cpu->force_features) { + unavailable_features &= ~env->user_features[d->to.index]; + } env->features[d->to.index] &= ~unavailable_features; } }
While in other call site "x-force-features" takes effect to keep the CPU feature even though not supported for any reason. This isn't consistent while expanding features, Fixed to keep user explicitly enabled features if "x-force-features" is specified. Fixes: 99e24dbdaa682 ("target/i386: introduce generic feature dependency mechanism") Signed-off-by: Zhenzhong Duan <zhenzhong.duan@intel.com> --- target/i386/cpu.c | 3 +++ 1 file changed, 3 insertions(+)