diff --git a/[refs] b/[refs] index 71ca3d500512..ce2bd52ef2c1 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: f797f9cc5485b50c35c106b462e1bc432ec37f90 +refs/heads/master: 6df3cecbb95345981718b38d357c50bc3425420a diff --git a/trunk/kernel/sched.c b/trunk/kernel/sched.c index 66b2ed784822..f12a0c8a7d98 100644 --- a/trunk/kernel/sched.c +++ b/trunk/kernel/sched.c @@ -3755,19 +3755,22 @@ EXPORT_SYMBOL(cond_resched); */ int cond_resched_lock(spinlock_t * lock) { + int ret = 0; + if (need_lockbreak(lock)) { spin_unlock(lock); cpu_relax(); + ret = 1; spin_lock(lock); } if (need_resched()) { _raw_spin_unlock(lock); preempt_enable_no_resched(); __cond_resched(); + ret = 1; spin_lock(lock); - return 1; } - return 0; + return ret; } EXPORT_SYMBOL(cond_resched_lock);