diff options
| author | Jeff Garzik <jgarzik@pobox.com> | 2005-07-13 19:11:44 -0400 |
|---|---|---|
| committer | Jeff Garzik <jgarzik@pobox.com> | 2005-07-13 19:11:44 -0400 |
| commit | 08cd84c81f27d5bd22ba958b7cae6d566c509280 (patch) | |
| tree | 6fdb546c151410851fd3c604d42590afa4215084 /kernel/sched.c | |
| parent | e9dd2561793c05d70c9df1bc16a2dde6f23388df (diff) | |
| parent | 327309e899662b482c58cf25f574513d38b5788c (diff) | |
Merge /spare/repo/netdev-2.6 branch 'ieee80211'
Diffstat (limited to 'kernel/sched.c')
| -rw-r--r-- | kernel/sched.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/kernel/sched.c b/kernel/sched.c index 5f2182d42241..4107db0dc091 100644 --- a/kernel/sched.c +++ b/kernel/sched.c @@ -3877,6 +3877,13 @@ asmlinkage long sys_sched_yield(void) static inline void __cond_resched(void) { + /* + * The BKS might be reacquired before we have dropped + * PREEMPT_ACTIVE, which could trigger a second + * cond_resched() call. + */ + if (unlikely(preempt_count())) + return; do { add_preempt_count(PREEMPT_ACTIVE); schedule(); |
