|
@@ -75,6 +75,11 @@ void machine_crash_shutdown(struct pt_regs *regs)
|
|
|
printk(KERN_INFO "Loading crashdump kernel...\n");
|
|
|
}
|
|
|
|
|
|
+/*
|
|
|
+ * Function pointer to optional machine-specific reinitialization
|
|
|
+ */
|
|
|
+void (*kexec_reinit)(void);
|
|
|
+
|
|
|
void machine_kexec(struct kimage *image)
|
|
|
{
|
|
|
unsigned long page_list;
|
|
@@ -104,6 +109,8 @@ void machine_kexec(struct kimage *image)
|
|
|
(unsigned long) reboot_code_buffer + KEXEC_CONTROL_PAGE_SIZE);
|
|
|
printk(KERN_INFO "Bye!\n");
|
|
|
|
|
|
+ if (kexec_reinit)
|
|
|
+ kexec_reinit();
|
|
|
local_irq_disable();
|
|
|
local_fiq_disable();
|
|
|
setup_mm_for_reboot(0); /* mode is not used, so just pass 0*/
|