Commit ceddee23 authored by Robert Jennings's avatar Robert Jennings Committed by Benjamin Herrenschmidt

powerpc: ONLINE to OFFLINE CPU state transition during removal

If a CPU remove is attempted using the 'release' interface on hardware
which supports extended cede, the CPU will be put in the INACTIVE state
rather than the OFFLINE state due to the default preferred_offline_state
in that situation.  In the INACTIVE state it will fail to be removed.

This patch changes the preferred offline state to OFFLINE when an CPU is
in the ONLINE state.  After cpu_down() is called in dlpar_offline_cpu()
the CPU will be OFFLINE and CPU removal can continue.
Signed-off-by: default avatarRobert Jennings <rcj@linux.vnet.ibm.com>
Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
parent ff4bb7cb
...@@ -463,6 +463,7 @@ static int dlpar_offline_cpu(struct device_node *dn) ...@@ -463,6 +463,7 @@ static int dlpar_offline_cpu(struct device_node *dn)
break; break;
if (get_cpu_current_state(cpu) == CPU_STATE_ONLINE) { if (get_cpu_current_state(cpu) == CPU_STATE_ONLINE) {
set_preferred_offline_state(cpu, CPU_STATE_OFFLINE);
cpu_maps_update_done(); cpu_maps_update_done();
rc = cpu_down(cpu); rc = cpu_down(cpu);
if (rc) if (rc)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment