summaryrefslogtreecommitdiffstats
path: root/target/i386
diff options
context:
space:
mode:
authorBabu Moger2020-09-22 00:47:28 +0200
committerEduardo Habkost2020-10-14 21:28:54 +0200
commit35ac5dfbcaa4b31470b4e201d26143b8b9a0a1e7 (patch)
tree3aa870141ead9bcd31ba54e4f6c9f2e64a7bd9a0 /target/i386
parenti386/kvm: fix FEATURE_HYPERV_EDX value in hyperv_passthrough case (diff)
downloadqemu-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.c11
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;