diff --git a/kernel/sched.c b/kernel/sched.c index c535cc4f6428bcd09405c2f4a3322f9b41de7eaa..4508fe7048be5d91ee5a01daef3fe9de8d37b909 100644 --- a/kernel/sched.c +++ b/kernel/sched.c @@ -5530,8 +5530,11 @@ asmlinkage void __sched schedule(void) post_schedule(rq); - if (unlikely(reacquire_kernel_lock(current) < 0)) + if (unlikely(reacquire_kernel_lock(current) < 0)) { + prev = rq->curr; + switch_count = &prev->nivcsw; goto need_resched_nonpreemptible; + } preempt_enable_no_resched(); if (need_resched())