|
@@ -135,6 +135,7 @@ void machine_shutdown(void)
|
|
*/
|
|
*/
|
|
void machine_halt(void)
|
|
void machine_halt(void)
|
|
{
|
|
{
|
|
|
|
+ local_irq_disable();
|
|
smp_send_stop();
|
|
smp_send_stop();
|
|
while (1);
|
|
while (1);
|
|
}
|
|
}
|
|
@@ -147,6 +148,7 @@ void machine_halt(void)
|
|
*/
|
|
*/
|
|
void machine_power_off(void)
|
|
void machine_power_off(void)
|
|
{
|
|
{
|
|
|
|
+ local_irq_disable();
|
|
smp_send_stop();
|
|
smp_send_stop();
|
|
if (pm_power_off)
|
|
if (pm_power_off)
|
|
pm_power_off();
|
|
pm_power_off();
|
|
@@ -165,10 +167,9 @@ void machine_power_off(void)
|
|
*/
|
|
*/
|
|
void machine_restart(char *cmd)
|
|
void machine_restart(char *cmd)
|
|
{
|
|
{
|
|
- smp_send_stop();
|
|
|
|
-
|
|
|
|
/* Disable interrupts first */
|
|
/* Disable interrupts first */
|
|
local_irq_disable();
|
|
local_irq_disable();
|
|
|
|
+ smp_send_stop();
|
|
|
|
|
|
/* Now call the architecture specific reboot code. */
|
|
/* Now call the architecture specific reboot code. */
|
|
if (arm_pm_restart)
|
|
if (arm_pm_restart)
|