Commit 868d172b authored by Eric Cooper's avatar Eric Cooper Committed by Nicolas Pitre
Browse files

[ARM] add machine-specific hook to machine_kexec



Provide the option to call a machine-specific function
before kexec'ing a new kernel.

Signed-off-by: default avatarEric Cooper <ecc@cmu.edu>
Signed-off-by: default avatarNicolas Pitre <nico@fluxnic.net>
parent e25bac96
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -50,6 +50,9 @@ static inline void crash_setup_regs(struct pt_regs *newregs,
	}
}

/* Function pointer to optional machine-specific reinitialization */
extern void (*kexec_reinit)(void);

#endif /* __ASSEMBLY__ */

#endif /* CONFIG_KEXEC */
+7 −0
Original line number Diff line number Diff line
@@ -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*/