diff options
| author | 2005-11-16 15:12:58 -0500 | |
|---|---|---|
| committer | 2005-11-16 15:12:58 -0500 | |
| commit | 3be4bb06b53df2c0a760eeaa5f53448faddedfca (patch) | |
| tree | 67dc02f39e48a8a37d8f3e4a38422d86f5164820 /kernel/stop_machine.c | |
| parent | Merge branch 'master' (diff) | |
| parent | [libata] bump versions (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 |
