diff options
Diffstat (limited to 'arch/powerpc')
-rw-r--r-- | arch/powerpc/platforms/pseries/hotplug-cpu.c | 30 |
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(); |