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 'for-linus-6.9a-rc7-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip

Pull xen fixes from Juergen Gross:
"Two fixes when running as Xen PV guests for issues introduced in the
6.9 merge window, both related to apic id handling"

* tag 'for-linus-6.9a-rc7-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip:
x86/xen: return a sane initial apic id when running as PV guest
x86/xen/smp_pv: Register the boot CPU APIC properly

+12 -3
+10 -1
arch/x86/xen/enlighten_pv.c
··· 219 219 static void xen_cpuid(unsigned int *ax, unsigned int *bx, 220 220 unsigned int *cx, unsigned int *dx) 221 221 { 222 - unsigned maskebx = ~0; 222 + unsigned int maskebx = ~0; 223 + unsigned int or_ebx = 0; 223 224 224 225 /* 225 226 * Mask out inconvenient features, to try and disable as many 226 227 * unsupported kernel subsystems as possible. 227 228 */ 228 229 switch (*ax) { 230 + case 0x1: 231 + /* Replace initial APIC ID in bits 24-31 of EBX. */ 232 + /* See xen_pv_smp_config() for related topology preparations. */ 233 + maskebx = 0x00ffffff; 234 + or_ebx = smp_processor_id() << 24; 235 + break; 236 + 229 237 case CPUID_MWAIT_LEAF: 230 238 /* Synthesize the values.. */ 231 239 *ax = 0; ··· 256 248 : "0" (*ax), "2" (*cx)); 257 249 258 250 *bx &= maskebx; 251 + *bx |= or_ebx; 259 252 } 260 253 261 254 static bool __init xen_check_mwait(void)
+2 -2
arch/x86/xen/smp_pv.c
··· 154 154 u32 apicid = 0; 155 155 int i; 156 156 157 - topology_register_boot_apic(apicid++); 157 + topology_register_boot_apic(apicid); 158 158 159 - for (i = 1; i < nr_cpu_ids; i++) 159 + for (i = 0; i < nr_cpu_ids; i++) 160 160 topology_register_apic(apicid++, CPU_ACPIID_INVALID, true); 161 161 162 162 /* Pretend to be a proper enumerated system */