diff options
author | Yasuaki Ishimatsu <isimatu.yasuaki@jp.fujitsu.com> | 2013-08-06 10:11:11 (GMT) |
---|---|---|
committer | Rafael J. Wysocki <rafael.j.wysocki@intel.com> | 2013-08-07 20:18:53 (GMT) |
commit | 1e385f6f97b8ab39e16a0956a1951e19a9376bab (patch) | |
tree | b29db1218f6dc709702b641fdc1f48fccaf04cc2 /drivers/acpi/glue.c | |
parent | 007ccfcf89401e764c33965b739310d86a94626d (diff) | |
download | linux-fsl-qoriq-1e385f6f97b8ab39e16a0956a1951e19a9376bab.tar.xz |
ACPI / processor: move try_offline_node() after acpi_unmap_lsapic()
try_offline_node() checks that all CPUs associated with the given
node have been removed by using cpu_present_bits. If all cpus
related to that node have been removed, try_offline_node() clears
the node information.
However, try_offline_node() called from acpi_processor_remove() never
clears the node information. For disabling cpu_present_bits,
acpi_unmap_lsapic() needs be called. Yet, acpi_unmap_lsapic() is
called after try_offline_node() has run. So when try_offline_node()
runs, the CPU's cpu_present_bits is always set.
Fix the issue by moving try_offline_node() after acpi_unmap_lsapic().
The problem fixed here was uncovered by commit cecdb19 "ACPI / scan:
Change the implementation of acpi_bus_trim()".
[rjw: Changelog]
Signed-off-by: Yasuaki Ishimatsu <isimatu.yasuaki@jp.fujitsu.com>
Acked-by: Toshi Kani <toshi.kani@hp.com>
Cc: 3.9+ <stable@vger.kernel.org> # 3.9+
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Diffstat (limited to 'drivers/acpi/glue.c')
0 files changed, 0 insertions, 0 deletions