• Y
    ACPI / processor: move try_offline_node() after acpi_unmap_lsapic() · 1e385f6f
    Yasuaki Ishimatsu 提交于
    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 cecdb193 "ACPI / scan:
    Change the implementation of acpi_bus_trim()".
    
    [rjw: Changelog]
    Signed-off-by: NYasuaki Ishimatsu <isimatu.yasuaki@jp.fujitsu.com>
    Acked-by: NToshi Kani <toshi.kani@hp.com>
    Cc: 3.9+ <stable@vger.kernel.org> # 3.9+
    Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
    1e385f6f
acpi_processor.c 13.0 KB