|
@@ -114,17 +114,13 @@ void soft_restart(unsigned long addr)
|
|
|
BUG();
|
|
|
}
|
|
|
|
|
|
-static void null_restart(enum reboot_mode reboot_mode, const char *cmd)
|
|
|
-{
|
|
|
-}
|
|
|
-
|
|
|
/*
|
|
|
* Function pointers to optional machine specific functions
|
|
|
*/
|
|
|
void (*pm_power_off)(void);
|
|
|
EXPORT_SYMBOL(pm_power_off);
|
|
|
|
|
|
-void (*arm_pm_restart)(enum reboot_mode reboot_mode, const char *cmd) = null_restart;
|
|
|
+void (*arm_pm_restart)(enum reboot_mode reboot_mode, const char *cmd);
|
|
|
EXPORT_SYMBOL_GPL(arm_pm_restart);
|
|
|
|
|
|
/*
|
|
@@ -230,7 +226,10 @@ void machine_restart(char *cmd)
|
|
|
local_irq_disable();
|
|
|
smp_send_stop();
|
|
|
|
|
|
- arm_pm_restart(reboot_mode, cmd);
|
|
|
+ if (arm_pm_restart)
|
|
|
+ arm_pm_restart(reboot_mode, cmd);
|
|
|
+ else
|
|
|
+ do_kernel_restart(cmd);
|
|
|
|
|
|
/* Give a grace period for failure to restart of 1s */
|
|
|
mdelay(1000);
|