projects
/
powerpc.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Pull release into acpica branch
[powerpc.git]
/
arch
/
s390
/
kernel
/
machine_kexec.c
diff --git
a/arch/s390/kernel/machine_kexec.c
b/arch/s390/kernel/machine_kexec.c
index
2721c3a
..
f0ed5c6
100644
(file)
--- a/
arch/s390/kernel/machine_kexec.c
+++ b/
arch/s390/kernel/machine_kexec.c
@@
-70,6
+70,8
@@
machine_kexec(struct kimage *image)
for (;;);
}
for (;;);
}
+extern void pfault_fini(void);
+
static void
kexec_halt_all_cpus(void *kernel_image)
{
static void
kexec_halt_all_cpus(void *kernel_image)
{
@@
-78,7
+80,12
@@
kexec_halt_all_cpus(void *kernel_image)
struct kimage *image;
relocate_kernel_t data_mover;
struct kimage *image;
relocate_kernel_t data_mover;
- if (atomic_compare_and_swap(-1, smp_processor_id(), &cpuid))
+#ifdef CONFIG_PFAULT
+ if (MACHINE_IS_VM)
+ pfault_fini();
+#endif
+
+ if (atomic_cmpxchg(&cpuid, -1, smp_processor_id()) != -1)
signal_processor(smp_processor_id(), sigp_stop);
/* Wait for all other cpus to enter stopped state */
signal_processor(smp_processor_id(), sigp_stop);
/* Wait for all other cpus to enter stopped state */