diff options
Diffstat (limited to 'arch/powerpc/platforms/pseries/setup.c')
-rw-r--r-- | arch/powerpc/platforms/pseries/setup.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/arch/powerpc/platforms/pseries/setup.c b/arch/powerpc/platforms/pseries/setup.c index de214d86ff44..6ebeecfd6bcb 100644 --- a/arch/powerpc/platforms/pseries/setup.c +++ b/arch/powerpc/platforms/pseries/setup.c | |||
@@ -234,9 +234,17 @@ static void pseries_kexec_cpu_down_xics(int crash_shutdown, int secondary) | |||
234 | { | 234 | { |
235 | /* Don't risk a hypervisor call if we're crashing */ | 235 | /* Don't risk a hypervisor call if we're crashing */ |
236 | if (firmware_has_feature(FW_FEATURE_SPLPAR) && !crash_shutdown) { | 236 | if (firmware_has_feature(FW_FEATURE_SPLPAR) && !crash_shutdown) { |
237 | unsigned long vpa = __pa(get_lppaca()); | 237 | unsigned long addr; |
238 | 238 | ||
239 | if (unregister_vpa(hard_smp_processor_id(), vpa)) { | 239 | addr = __pa(get_slb_shadow()); |
240 | if (unregister_slb_shadow(hard_smp_processor_id(), addr)) | ||
241 | printk("SLB shadow buffer deregistration of " | ||
242 | "cpu %u (hw_cpu_id %d) failed\n", | ||
243 | smp_processor_id(), | ||
244 | hard_smp_processor_id()); | ||
245 | |||
246 | addr = __pa(get_lppaca()); | ||
247 | if (unregister_vpa(hard_smp_processor_id(), addr)) { | ||
240 | printk("VPA deregistration of cpu %u (hw_cpu_id %d) " | 248 | printk("VPA deregistration of cpu %u (hw_cpu_id %d) " |
241 | "failed\n", smp_processor_id(), | 249 | "failed\n", smp_processor_id(), |
242 | hard_smp_processor_id()); | 250 | hard_smp_processor_id()); |