From: Michael Tokarev Date: Wed, 8 Oct 2025 13:42:20 +0000 (+0300) Subject: Revert "i386/cpu: Move adjustment of CPUID_EXT_PDCM before feature_dependencies[... X-Git-Tag: v10.0.6~22 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=7917dee17a4cc82102a21f148d0ae845b446774f;p=thirdparty%2Fqemu.git Revert "i386/cpu: Move adjustment of CPUID_EXT_PDCM before feature_dependencies[] check" This reverts commit 3d26cb65c27190e57637644ecf6c96b8c3d246a3 (v10.0.3-34-g3d26cb65c271) from 10.0.x branch. The problem is that the change makes qemu 10.0.x non-migratable to subsequent qemu versions, since it requires introducing a new machine type. This change should not have been picked up for 10.0.x. Reviewed-by: Zhao Liu Reopens: https://gitlab.com/qemu-project/qemu/-/issues/3061 (for 10.0.x) Signed-off-by: Michael Tokarev --- diff --git a/target/i386/cpu.c b/target/i386/cpu.c index 58c62ff5b5..34b52ef7a1 100644 --- a/target/i386/cpu.c +++ b/target/i386/cpu.c @@ -6851,6 +6851,9 @@ void cpu_x86_cpuid(CPUX86State *env, uint32_t index, uint32_t count, /* Fixup overflow: max value for bits 23-16 is 255. */ *ebx |= MIN(num, 255) << 16; } + if (!cpu->enable_pmu) { + *ecx &= ~CPUID_EXT_PDCM; + } break; case 2: /* cache info: needed for Pentium Pro compatibility */ @@ -7840,10 +7843,6 @@ void x86_cpu_expand_features(X86CPU *cpu, Error **errp) } } - if (!cpu->enable_pmu) { - env->features[FEAT_1_ECX] &= ~CPUID_EXT_PDCM; - } - for (i = 0; i < ARRAY_SIZE(feature_dependencies); i++) { FeatureDep *d = &feature_dependencies[i]; if (!(env->features[d->from.index] & d->from.mask)) {