aboutsummaryrefslogtreecommitdiffstats
path: root/arch/powerpc/platforms/pseries/setup.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/powerpc/platforms/pseries/setup.c')
-rw-r--r--arch/powerpc/platforms/pseries/setup.c12
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());