6 #include <linux/kexec.h>
8 #include <linux/reboot.h>
12 #include <asm/pgtable.h>
14 #include <asm/pgalloc.h>
15 #include <asm/mmu_context.h>
16 #include <asm/cacheflush.h>
18 #include <asm/system_misc.h>
28 static atomic_t waiting_for_crash_ipi;
45 for (i = 0; i < image->nr_segments; i++) {
46 current_segment = &image->segment[
i];
49 current_segment->
memsz))
70 crash_setup_regs(®s,
NULL);
71 printk(
KERN_DEBUG "CPU %u will stop doing anything useful since another CPU has crashed\n",
89 chip = irq_desc_get_chip(desc);
113 while ((
atomic_read(&waiting_for_crash_ipi) > 0) && msecs) {
133 unsigned long page_list;
134 unsigned long reboot_code_buffer_phys;
135 void *reboot_code_buffer;
141 reboot_code_buffer_phys =
143 reboot_code_buffer =
page_address(image->control_code_page);
150 kexec_boot_atags = image->start - KEXEC_ARM_ZIMAGE_OFFSET + KEXEC_ARM_ATAGS_OFFSET;
154 memcpy(reboot_code_buffer,