• Yasuaki Ishimatsu's avatar
    ACPI / processor: move try_offline_node() after acpi_unmap_lsapic() · 1e385f6f
    Yasuaki Ishimatsu authored
    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: default avatarYasuaki Ishimatsu <isimatu.yasuaki@jp.fujitsu.com>
    Acked-by: default avatarToshi Kani <toshi.kani@hp.com>
    Cc: 3.9+ <stable@vger.kernel.org> # 3.9+
    Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
    1e385f6f
acpi_processor.c 13 KB