aboutsummaryrefslogtreecommitdiff
path: root/target
diff options
context:
space:
mode:
authorBabu Moger <babu.moger@amd.com>2020-09-21 17:47:28 -0500
committerEduardo Habkost <ehabkost@redhat.com>2020-10-14 15:28:54 -0400
commit35ac5dfbcaa4b31470b4e201d26143b8b9a0a1e7 (patch)
tree3aa870141ead9bcd31ba54e4f6c9f2e64a7bd9a0 /target
parent1a7655d53d0f6984624f3868125774a34456ca27 (diff)
downloadqemu-35ac5dfbcaa4b31470b4e201d26143b8b9a0a1e7.zip
qemu-35ac5dfbcaa4b31470b4e201d26143b8b9a0a1e7.tar.gz
qemu-35ac5dfbcaa4b31470b4e201d26143b8b9a0a1e7.tar.bz2
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')
-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 a33af23..25ec641 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;