aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/powerpc/platforms/pseries/hotplug-cpu.c30
1 files changed, 15 insertions, 15 deletions
diff --git a/arch/powerpc/platforms/pseries/hotplug-cpu.c b/arch/powerpc/platforms/pseries/hotplug-cpu.c
index 349e0af9389a..fefb7f84800b 100644
--- a/arch/powerpc/platforms/pseries/hotplug-cpu.c
+++ b/arch/powerpc/platforms/pseries/hotplug-cpu.c
@@ -140,25 +140,25 @@ static void pseries_mach_cpu_die(void)
140 if (!get_lppaca()->shared_proc) 140 if (!get_lppaca()->shared_proc)
141 get_lppaca()->donate_dedicated_cpu = 0; 141 get_lppaca()->donate_dedicated_cpu = 0;
142 get_lppaca()->idle = 0; 142 get_lppaca()->idle = 0;
143 }
144 143
145 if (get_preferred_offline_state(cpu) == CPU_STATE_ONLINE) { 144 if (get_preferred_offline_state(cpu) == CPU_STATE_ONLINE) {
146 unregister_slb_shadow(hwcpu, __pa(get_slb_shadow())); 145 unregister_slb_shadow(hwcpu, __pa(get_slb_shadow()));
147 146
148 /* 147 /*
149 * Call to start_secondary_resume() will not return. 148 * Call to start_secondary_resume() will not return.
150 * Kernel stack will be reset and start_secondary() 149 * Kernel stack will be reset and start_secondary()
151 * will be called to continue the online operation. 150 * will be called to continue the online operation.
152 */ 151 */
153 start_secondary_resume(); 152 start_secondary_resume();
153 }
154 }
154 155
155 } else if (get_preferred_offline_state(cpu) == CPU_STATE_OFFLINE) { 156 /* Requested state is CPU_STATE_OFFLINE at this point */
157 WARN_ON(get_preferred_offline_state(cpu) != CPU_STATE_OFFLINE);
156 158
157 set_cpu_current_state(cpu, CPU_STATE_OFFLINE); 159 set_cpu_current_state(cpu, CPU_STATE_OFFLINE);
158 unregister_slb_shadow(hard_smp_processor_id(), 160 unregister_slb_shadow(hwcpu, __pa(get_slb_shadow()));
159 __pa(get_slb_shadow())); 161 rtas_stop_self();
160 rtas_stop_self();
161 }
162 162
163 /* Should never get here... */ 163 /* Should never get here... */
164 BUG(); 164 BUG();