]> git.proxmox.com Git - mirror_qemu.git/commitdiff
target/i386: Remove core_id assert check in CPUID 0x8000001E
authorBabu Moger <babu.moger@amd.com>
Mon, 21 Sep 2020 22:47:28 +0000 (17:47 -0500)
committerEduardo Habkost <ehabkost@redhat.com>
Wed, 14 Oct 2020 19:28:54 +0000 (15:28 -0400)
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>
target/i386/cpu.c

index a33af2359c829cc8f5cfdec91ad07a61511b9fb0..25ec64124e7036336fff9c7dbbc3b9087db4f512 100644 (file)
@@ -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;