Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge tag 'x86-urgent-2023-05-28' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

Pull x86 cpu fix from Thomas Gleixner:
"A single fix for x86:

- Prevent a bogus setting for the number of HT siblings, which is
caused by the CPUID evaluation trainwreck of X86. That recomputes
the value for each CPU, so the last CPU "wins". That can cause
completely bogus sibling values"

* tag 'x86-urgent-2023-05-28' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
x86/topology: Fix erroneous smp_num_siblings on Intel Hybrid platforms

+3 -2
+3 -2
arch/x86/kernel/cpu/topology.c
··· 79 79 * initial apic id, which also represents 32-bit extended x2apic id. 80 80 */ 81 81 c->initial_apicid = edx; 82 - smp_num_siblings = LEVEL_MAX_SIBLINGS(ebx); 82 + smp_num_siblings = max_t(int, smp_num_siblings, LEVEL_MAX_SIBLINGS(ebx)); 83 83 #endif 84 84 return 0; 85 85 } ··· 109 109 */ 110 110 cpuid_count(leaf, SMT_LEVEL, &eax, &ebx, &ecx, &edx); 111 111 c->initial_apicid = edx; 112 - core_level_siblings = smp_num_siblings = LEVEL_MAX_SIBLINGS(ebx); 112 + core_level_siblings = LEVEL_MAX_SIBLINGS(ebx); 113 + smp_num_siblings = max_t(int, smp_num_siblings, LEVEL_MAX_SIBLINGS(ebx)); 113 114 core_plus_mask_width = ht_mask_width = BITS_SHIFT_NEXT_LEVEL(eax); 114 115 die_level_siblings = LEVEL_MAX_SIBLINGS(ebx); 115 116 pkg_mask_width = die_plus_mask_width = BITS_SHIFT_NEXT_LEVEL(eax);