From 82c552b519c9037eb23a74966b520e9e57836b23 Mon Sep 17 00:00:00 2001 From: Paul Gortmaker Date: Sun, 23 Jan 2011 12:03:17 -0500 Subject: [PATCH] cond_resched_softirq: mask SOFTIRQ_OFFSET in __might_sleep on RT This is one of several extractions from the merge up to 33-rc8. See it in a git tip repo with: git diff 5f854cfc024622e4aae14d7cf422f6ff86278688^2 \ 5f854cfc024622e4aae14d7cf422f6ff86278688 \ include/linux/sched.h (Yes, it is in there, along with lots of other sched.h changes...) You can find the origin of this change in the tip merge commit: commit 5f854cfc024622e4aae14d7cf422f6ff86278688 Merge: cc24da0 4ec62b2 Author: Thomas Gleixner Date: Sun Feb 21 20:17:22 2010 +0100 Forward to 2.6.33-rc8 Merge branch 'linus' into rt/head with a pile of conflicts. Signed-off-by: Thomas Gleixner Normally there are not significant changes/additions in a merge commit that are not from any other "normal" commit. But in this case there are, so break them out into separate explicit commits. Signed-off-by: Paul Gortmaker --- include/linux/sched.h | 8 ++++++++ 1 files changed, 8 insertions(+), 0 deletions(-) diff --git a/include/linux/sched.h b/include/linux/sched.h index 16918ad..b515f13 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h @@ -2477,10 +2477,18 @@ extern int __cond_resched_lock(spinlock_t *lock); extern int __cond_resched_softirq(void); + +#ifndef CONFIG_PREEMPT_RT #define cond_resched_softirq() ({ \ __might_sleep(__FILE__, __LINE__, SOFTIRQ_OFFSET); \ __cond_resched_softirq(); \ }) +#else +#define cond_resched_softirq() ({ \ + __might_sleep(__FILE__, __LINE__, 0); \ + __cond_resched_softirq(); \ +}) +#endif extern int cond_resched_softirq_context(void); -- 1.7.0.4