mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-30 11:41:38 -04:00
x86/ACPI: keep x86_cpu_to_acpiid mapping valid on CPU hotplug
We may or may not have all possible CPUs in MADT on boot but in any
case we're overwriting x86_cpu_to_acpiid mapping with U32_MAX when
acpi_register_lapic() is called again on the CPU hotplug path:
acpi_processor_hotadd_init()
-> acpi_map_cpu()
-> acpi_register_lapic()
As we have the required acpi_id information in acpi_processor_hotadd_init()
propagate it to acpi_map_cpu() to always keep x86_cpu_to_acpiid
mapping valid.
Reported-by: Andrew Jones <[email protected]>
Signed-off-by: Vitaly Kuznetsov <[email protected]>
Signed-off-by: Rafael J. Wysocki <[email protected]>
This commit is contained in:
parent
d5adbfcd5f
commit
febf240741
4 changed files with 9 additions and 6 deletions
|
|
@ -165,7 +165,7 @@ static int acpi_processor_errata(void)
|
|||
|
||||
#ifdef CONFIG_ACPI_HOTPLUG_CPU
|
||||
int __weak acpi_map_cpu(acpi_handle handle,
|
||||
phys_cpuid_t physid, int *pcpu)
|
||||
phys_cpuid_t physid, u32 acpi_id, int *pcpu)
|
||||
{
|
||||
return -ENODEV;
|
||||
}
|
||||
|
|
@ -203,7 +203,7 @@ static int acpi_processor_hotadd_init(struct acpi_processor *pr)
|
|||
cpu_maps_update_begin();
|
||||
cpu_hotplug_begin();
|
||||
|
||||
ret = acpi_map_cpu(pr->handle, pr->phys_id, &pr->id);
|
||||
ret = acpi_map_cpu(pr->handle, pr->phys_id, pr->acpi_id, &pr->id);
|
||||
if (ret)
|
||||
goto out;
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue