diff options
Diffstat (limited to 'arch/powerpc/platforms/pseries/kexec.c')
-rw-r--r-- | arch/powerpc/platforms/pseries/kexec.c | 20 |
1 files changed, 8 insertions, 12 deletions
diff --git a/arch/powerpc/platforms/pseries/kexec.c b/arch/powerpc/platforms/pseries/kexec.c index 3bae8bd7db3b..7d94bdc63d50 100644 --- a/arch/powerpc/platforms/pseries/kexec.c +++ b/arch/powerpc/platforms/pseries/kexec.c @@ -25,34 +25,30 @@ static void pseries_kexec_cpu_down(int crash_shutdown, int secondary) { /* Don't risk a hypervisor call if we're crashing */ if (firmware_has_feature(FW_FEATURE_SPLPAR) && !crash_shutdown) { - unsigned long addr; int ret; + int cpu = smp_processor_id(); + int hwcpu = hard_smp_processor_id(); if (get_lppaca()->dtl_enable_mask) { - ret = unregister_dtl(hard_smp_processor_id()); + ret = unregister_dtl(hwcpu); if (ret) { pr_err("WARNING: DTL deregistration for cpu " "%d (hw %d) failed with %d\n", - smp_processor_id(), - hard_smp_processor_id(), ret); + cpu, hwcpu, ret); } } - addr = __pa(get_slb_shadow()); - ret = unregister_slb_shadow(hard_smp_processor_id(), addr); + ret = unregister_slb_shadow(hwcpu); if (ret) { pr_err("WARNING: SLB shadow buffer deregistration " "for cpu %d (hw %d) failed with %d\n", - smp_processor_id(), - hard_smp_processor_id(), ret); + cpu, hwcpu, ret); } - addr = __pa(get_lppaca()); - ret = unregister_vpa(hard_smp_processor_id(), addr); + ret = unregister_vpa(hwcpu); if (ret) { pr_err("WARNING: VPA deregistration for cpu %d " - "(hw %d) failed with %d\n", smp_processor_id(), - hard_smp_processor_id(), ret); + "(hw %d) failed with %d\n", cpu, hwcpu, ret); } } } |