/* * Do either kdump or normal kexec. In case of kdump we first ask * purgatory, if kdump checksums are valid. */ void machine_kexec(struct kimage *image) { if (image->type == KEXEC_TYPE_CRASH && !kdump_csum_valid(image)) return; tracer_disable(); smp_send_stop(); smp_call_ipl_cpu(__machine_kexec, image); }
/* * Reset system and call either kdump or normal kexec */ void machine_kexec(struct kimage *image) { if (image->type == KEXEC_TYPE_CRASH && !kdump_csum_valid(image)) return; smp_send_stop(); pfault_fini(); if (image->type == KEXEC_TYPE_CRASH) s390_reset_system(__do_machine_kdump, image); else s390_reset_system(__do_machine_kexec, image); disabled_wait((unsigned long) __builtin_return_address(0)); }
/* * Reset system and call either kdump or normal kexec */ void machine_kexec(struct kimage *image) { if (image->type == KEXEC_TYPE_CRASH && !kdump_csum_valid(image)) return; smp_send_stop(); pfault_fini(); tracing_off(); debug_locks_off(); if (image->type == KEXEC_TYPE_CRASH) { lgr_info_log(); s390_reset_system(__do_machine_kdump, image); } else { s390_reset_system(__do_machine_kexec, image); } disabled_wait((unsigned long) __builtin_return_address(0)); }