diff options
author | Babu Moger | 2020-09-22 00:47:28 +0200 |
---|---|---|
committer | Eduardo Habkost | 2020-10-14 21:28:54 +0200 |
commit | 35ac5dfbcaa4b31470b4e201d26143b8b9a0a1e7 (patch) | |
tree | 3aa870141ead9bcd31ba54e4f6c9f2e64a7bd9a0 /target/i386 | |
parent | i386/kvm: fix FEATURE_HYPERV_EDX value in hyperv_passthrough case (diff) | |
download | qemu-35ac5dfbcaa4b31470b4e201d26143b8b9a0a1e7.tar.gz qemu-35ac5dfbcaa4b31470b4e201d26143b8b9a0a1e7.tar.xz qemu-35ac5dfbcaa4b31470b4e201d26143b8b9a0a1e7.zip |
target/i386: Remove core_id assert check in CPUID 0x8000001E
With x2apic enabled, configurations can have more that 255 cores.
Noticed the device add test is hitting an assert when during cpu
hotplug with core_id > 255. This is due to assert check in the
CPUID 0x8000001E.
Remove the assert check and fix the problem.
Fixes the bug:
Link: https://bugzilla.redhat.com/show_bug.cgi?id=1834200
Signed-off-by: Babu Moger <babu.moger@amd.com>
Message-Id: <160072824160.9666.8890355282135970684.stgit@naples-babu.amd.com>
Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
Diffstat (limited to 'target/i386')
-rw-r--r-- | target/i386/cpu.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/target/i386/cpu.c b/target/i386/cpu.c index a33af2359c..25ec64124e 100644 --- a/target/i386/cpu.c +++ b/target/i386/cpu.c @@ -5910,9 +5910,14 @@ void cpu_x86_cpuid(CPUX86State *env, uint32_t index, uint32_t count, } break; case 0x8000001E: - assert(cpu->core_id <= 255); - encode_topo_cpuid8000001e(cpu, &topo_info, - eax, ebx, ecx, edx); + if (cpu->core_id <= 255) { + encode_topo_cpuid8000001e(cpu, &topo_info, eax, ebx, ecx, edx); + } else { + *eax = 0; + *ebx = 0; + *ecx = 0; + *edx = 0; + } break; case 0xC0000000: *eax = env->cpuid_xlevel2; |