Messages in this thread | | | Date | Wed, 6 Nov 2019 17:54:37 +0100 | From | Peter Zijlstra <> | Subject | Re: Re: NULL pointer dereference in pick_next_task_fair |
| |
On Wed, Nov 06, 2019 at 06:51:40PM +0300, Kirill Tkhai wrote: > > +#ifdef CONFIG_SMP > > + if (!rq->nr_running) { > > + /* > > + * Make sure task_on_rq_curr() fails, such that we don't do > > + * put_prev_task() + set_next_task() on this task again. > > + */ > > + prev->on_cpu = 2; > > newidle_balance(rq, rf); > > Shouldn't we restore prev->on_cpu = 1 after newidle_balance()? Can't prev > become pickable again after newidle_balance() releases rq->lock, and we > take it again, so this on_cpu == 2 never will be cleared?
Indeed so.
| |