stop_machine() now uses hard_irq_disable
PATCH 3/3 stop_machine() now uses hard_irq_disable
Add a call to hard_irq_disable() to stop_machine so that we make sure IRQs are really disabled and not only lazy-disabled on archs like powerpc as some users of stop_machine() may rely on that.
Signed-off-by Benjamin Herrenschmidt <[email protected]>
kernel/stop_machine.c | 2 ++ 1 file changed, 2 insertions(+)
kernel/stop_machine.c +2 -0
@@ -45,6 +45,7 @@ static int stopmachine(void *cpu)if (stopmachine_state ==STOPMACHINE_DISABLE_IRQ && !irqs_disabled) {local_irq_disable (); +hard_irq_disable (); irqs_disabled =1 ;/* Ack: irqs disabled. */ smp_mb ();/* Must read state first. */
@@ -124,6 +125,7 @@ static int stop_machine(void)/* Make them disable irqs. */ local_irq_disable (); +hard_irq_disable ();stopmachine_set_state (STOPMACHINE_DISABLE_IRQ );return 0 ;
Quoted 5 lines · Benjamin Herrenschmidt
Add a call to
hard_irq_disable()tostop_machineso that we make sure IRQs are really disabled and not only lazy-disabled on archs like powerpc as some users ofstop_machine()may rely on that.Signed-off-by Benjamin Herrenschmidt <[email protected]>
Acked-by Rusty Russell <[email protected]>
Thanks,
Rusty.