diff options
| author | Jeff Garzik <jgarzik@pobox.com> | 2005-11-16 15:12:58 -0500 |
|---|---|---|
| committer | Jeff Garzik <jgarzik@pobox.com> | 2005-11-16 15:12:58 -0500 |
| commit | 3be4bb06b53df2c0a760eeaa5f53448faddedfca (patch) | |
| tree | 67dc02f39e48a8a37d8f3e4a38422d86f5164820 /kernel/stop_machine.c | |
| parent | 85d6162d6cea9220e483989817eac0cebc03070e (diff) | |
| parent | 7bdd720869ff75700b48b132ee71852615b55808 (diff) | |
Merge branch 'upstream-fixes'
Diffstat (limited to 'kernel/stop_machine.c')
| -rw-r--r-- | kernel/stop_machine.c | 6 |
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) return ret; } - /* Don't schedule us away at this point, please. */ - local_irq_disable(); - /* Now they are all started, make them hold the CPUs, ready. */ + preempt_disable(); stopmachine_set_state(STOPMACHINE_PREPARE); /* Make them disable irqs. */ + local_irq_disable(); stopmachine_set_state(STOPMACHINE_DISABLE_IRQ); return 0; @@ -135,6 +134,7 @@ static void restart_machine(void) { stopmachine_set_state(STOPMACHINE_EXIT); local_irq_enable(); + preempt_enable_no_resched(); } struct stop_machine_data |
