aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/stop_machine.c
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/stop_machine.c')
-rw-r--r--kernel/stop_machine.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/kernel/stop_machine.c b/kernel/stop_machine.c
index 84a9d18aa8da..b3d4dc858e35 100644
--- a/kernel/stop_machine.c
+++ b/kernel/stop_machine.c
@@ -119,13 +119,12 @@ static int stop_machine(void)
119 return ret; 119 return ret;
120 } 120 }
121 121
122 /* Don't schedule us away at this point, please. */
123 local_irq_disable();
124
125 /* Now they are all started, make them hold the CPUs, ready. */ 122 /* Now they are all started, make them hold the CPUs, ready. */
123 preempt_disable();
126 stopmachine_set_state(STOPMACHINE_PREPARE); 124 stopmachine_set_state(STOPMACHINE_PREPARE);
127 125
128 /* Make them disable irqs. */ 126 /* Make them disable irqs. */
127 local_irq_disable();
129 stopmachine_set_state(STOPMACHINE_DISABLE_IRQ); 128 stopmachine_set_state(STOPMACHINE_DISABLE_IRQ);
130 129
131 return 0; 130 return 0;
@@ -135,6 +134,7 @@ static void restart_machine(void)
135{ 134{
136 stopmachine_set_state(STOPMACHINE_EXIT); 135 stopmachine_set_state(STOPMACHINE_EXIT);
137 local_irq_enable(); 136 local_irq_enable();
137 preempt_enable_no_resched();
138} 138}
139 139
140struct stop_machine_data 140struct stop_machine_data