From 79d35dab49323ba05ad44ba27a05e35185510490 Mon Sep 17 00:00:00 2001 From: Kirill Korotaev Date: Sun, 13 Nov 2005 16:07:30 -0800 Subject: [PATCH] --- yaml --- r: 14077 b: refs/heads/master c: 4557398f8cbaf9f254cff747534b4724c7f75c4f h: refs/heads/master i: 14075: aef8e5e2a26259634d2983c369d3ef3677c9957e v: v3 --- [refs] | 2 +- trunk/kernel/stop_machine.c | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/[refs] b/[refs] index f25a27f66f12..589a4df4bc17 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: c5b609797b8e212dbfaf23944da8bf8c53233d5c +refs/heads/master: 4557398f8cbaf9f254cff747534b4724c7f75c4f diff --git a/trunk/kernel/stop_machine.c b/trunk/kernel/stop_machine.c index 84a9d18aa8da..b3d4dc858e35 100644 --- a/trunk/kernel/stop_machine.c +++ b/trunk/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