sys/i386/xen/mp_machdep.c:
sys/i386/xen/mptable.c: Set PCPU apic_id and acpi_id fields in a fasion compatible with both UP and SMP configurations. Suggested by: jhb Submitted by: Roger Pau Monné Sponsored by: Citrix Systems R&D Reviewed by: gibbs Approved by: re (blanket Xen) MFC after: 2 weeks
This commit is contained in:
parent
88a4d0f31a
commit
45812e0f97
@ -251,9 +251,6 @@ cpu_add(u_int apic_id, char boot_cpu)
|
||||
if (bootverbose)
|
||||
printf("SMP: Added CPU %d (%s)\n", apic_id, boot_cpu ? "BSP" :
|
||||
"AP");
|
||||
|
||||
/* Set the ACPI id (it is needed by VCPU operations) */
|
||||
pcpu_find(apic_id)->pc_acpi_id = apic_id;
|
||||
}
|
||||
|
||||
void
|
||||
@ -786,6 +783,13 @@ start_all_aps(void)
|
||||
dpcpu_init((void *)kmem_malloc(kernel_arena, DPCPU_SIZE,
|
||||
M_WAITOK | M_ZERO), bootAP);
|
||||
pc->pc_apic_id = cpu_apic_ids[bootAP];
|
||||
/*
|
||||
* The i386 PV port uses the apic_id as vCPU id, but the
|
||||
* PVHVM port needs to use the acpi_id, so set it for PV
|
||||
* also in order to work with shared devices between PV
|
||||
* and PVHVM.
|
||||
*/
|
||||
pc->pc_acpi_id = cpu_apic_ids[bootAP];
|
||||
pc->pc_prvspace = pc;
|
||||
pc->pc_curthread = 0;
|
||||
|
||||
|
@ -87,6 +87,8 @@ static int
|
||||
mptable_setup_local(void)
|
||||
{
|
||||
|
||||
PCPU_SET(apic_id, 0);
|
||||
PCPU_SET(acpi_id, 0);
|
||||
return (0);
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user