aboutsummaryrefslogtreecommitdiffstats
path: root/arch/powerpc/platforms/pseries/kexec.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/powerpc/platforms/pseries/kexec.c')
-rw-r--r--arch/powerpc/platforms/pseries/kexec.c20
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)
25{ 25{
26 /* Don't risk a hypervisor call if we're crashing */ 26 /* Don't risk a hypervisor call if we're crashing */
27 if (firmware_has_feature(FW_FEATURE_SPLPAR) && !crash_shutdown) { 27 if (firmware_has_feature(FW_FEATURE_SPLPAR) && !crash_shutdown) {
28 unsigned long addr;
29 int ret; 28 int ret;
29 int cpu = smp_processor_id();
30 int hwcpu = hard_smp_processor_id();
30 31
31 if (get_lppaca()->dtl_enable_mask) { 32 if (get_lppaca()->dtl_enable_mask) {
32 ret = unregister_dtl(hard_smp_processor_id()); 33 ret = unregister_dtl(hwcpu);
33 if (ret) { 34 if (ret) {
34 pr_err("WARNING: DTL deregistration for cpu " 35 pr_err("WARNING: DTL deregistration for cpu "
35 "%d (hw %d) failed with %d\n", 36 "%d (hw %d) failed with %d\n",
36 smp_processor_id(), 37 cpu, hwcpu, ret);
37 hard_smp_processor_id(), ret);
38 } 38 }
39 } 39 }
40 40
41 addr = __pa(get_slb_shadow()); 41 ret = unregister_slb_shadow(hwcpu);
42 ret = unregister_slb_shadow(hard_smp_processor_id(), addr);
43 if (ret) { 42 if (ret) {
44 pr_err("WARNING: SLB shadow buffer deregistration " 43 pr_err("WARNING: SLB shadow buffer deregistration "
45 "for cpu %d (hw %d) failed with %d\n", 44 "for cpu %d (hw %d) failed with %d\n",
46 smp_processor_id(), 45 cpu, hwcpu, ret);
47 hard_smp_processor_id(), ret);
48 } 46 }
49 47
50 addr = __pa(get_lppaca()); 48 ret = unregister_vpa(hwcpu);
51 ret = unregister_vpa(hard_smp_processor_id(), addr);
52 if (ret) { 49 if (ret) {
53 pr_err("WARNING: VPA deregistration for cpu %d " 50 pr_err("WARNING: VPA deregistration for cpu %d "
54 "(hw %d) failed with %d\n", smp_processor_id(), 51 "(hw %d) failed with %d\n", cpu, hwcpu, ret);
55 hard_smp_processor_id(), ret);
56 } 52 }
57 } 53 }
58} 54}