diff options
Diffstat (limited to 'arch/s390/kernel/machine_kexec.c')
-rw-r--r-- | arch/s390/kernel/machine_kexec.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/arch/s390/kernel/machine_kexec.c b/arch/s390/kernel/machine_kexec.c index 2721c3a32b84..5aa71b05b8ae 100644 --- a/arch/s390/kernel/machine_kexec.c +++ b/arch/s390/kernel/machine_kexec.c | |||
@@ -70,6 +70,8 @@ machine_kexec(struct kimage *image) | |||
70 | for (;;); | 70 | for (;;); |
71 | } | 71 | } |
72 | 72 | ||
73 | extern void pfault_fini(void); | ||
74 | |||
73 | static void | 75 | static void |
74 | kexec_halt_all_cpus(void *kernel_image) | 76 | kexec_halt_all_cpus(void *kernel_image) |
75 | { | 77 | { |
@@ -78,6 +80,11 @@ kexec_halt_all_cpus(void *kernel_image) | |||
78 | struct kimage *image; | 80 | struct kimage *image; |
79 | relocate_kernel_t data_mover; | 81 | relocate_kernel_t data_mover; |
80 | 82 | ||
83 | #ifdef CONFIG_PFAULT | ||
84 | if (MACHINE_IS_VM) | ||
85 | pfault_fini(); | ||
86 | #endif | ||
87 | |||
81 | if (atomic_compare_and_swap(-1, smp_processor_id(), &cpuid)) | 88 | if (atomic_compare_and_swap(-1, smp_processor_id(), &cpuid)) |
82 | signal_processor(smp_processor_id(), sigp_stop); | 89 | signal_processor(smp_processor_id(), sigp_stop); |
83 | 90 | ||