diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2010-01-21 11:49:52 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2010-01-21 11:49:52 -0500 |
commit | 341031caec0cd730e84d248d95851bf54ec4e41f (patch) | |
tree | f9531f3bef8446e0eb2f9f4ba1ed6fa1000585c8 /kernel/sched.c | |
parent | 836f48c5f8c6ef004419f1605514aa05eb58eefb (diff) | |
parent | 6d558c3ac9b6508d26fd5cadccce51fc9d726b1c (diff) |
Merge branch 'sched-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
* 'sched-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
sched: Reassign prev and switch_count when reacquire_kernel_lock() fail
sched: Fix vmark regression on big machines
Diffstat (limited to 'kernel/sched.c')
-rw-r--r-- | kernel/sched.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/kernel/sched.c b/kernel/sched.c index c535cc4f6428..4508fe7048be 100644 --- a/kernel/sched.c +++ b/kernel/sched.c | |||
@@ -5530,8 +5530,11 @@ need_resched_nonpreemptible: | |||
5530 | 5530 | ||
5531 | post_schedule(rq); | 5531 | post_schedule(rq); |
5532 | 5532 | ||
5533 | if (unlikely(reacquire_kernel_lock(current) < 0)) | 5533 | if (unlikely(reacquire_kernel_lock(current) < 0)) { |
5534 | prev = rq->curr; | ||
5535 | switch_count = &prev->nivcsw; | ||
5534 | goto need_resched_nonpreemptible; | 5536 | goto need_resched_nonpreemptible; |
5537 | } | ||
5535 | 5538 | ||
5536 | preempt_enable_no_resched(); | 5539 | preempt_enable_no_resched(); |
5537 | if (need_resched()) | 5540 | if (need_resched()) |