Prasad. On Thu, 2 Aug 2018, Peter Zijlstra wrote: > > So why didn't you do the 'obvious' parallel to what you did for > cpu_stop_queue_two_works(), namely:
Is that patch fixing the issue for you? > --- a/kernel/stop_machine.c > +++ b/kernel/stop_machine.c > @@ -81,6 +81,7 @@ static bool cpu_stop_queue_work(unsigned > unsigned long flags; > bool enabled; > > + preempt_disable(); > raw_spin_lock_irqsave(&stopper->lock, flags); > enabled = stopper->enabled; > if (enabled) > @@ -90,6 +91,7 @@ static bool cpu_stop_queue_work(unsigned > raw_spin_unlock_irqrestore(&stopper->lock, flags); > > wake_up_q(&wakeq); > + preempt_enable(); > > return enabled; > } >