kernel/kernel/stop_machine.c
.. .. @@ -86,8 +86,11 @@ 86 86 enabled = stopper->enabled; 87 87 if (enabled) 88 88 __cpu_stop_queue_work(stopper, work, &wakeq); 89 - else if (work->done)90 - cpu_stop_signal_done(work->done);89 + else {90 + work->disabled = true;91 + if (work->done)92 + cpu_stop_signal_done(work->done);93 + }91 94 raw_spin_unlock_irqrestore(&stopper->lock, flags); 92 95 93 96 wake_up_q(&wakeq);