blob: acf20540e59f3fcd893147453e7bd974ccc42633 [file] [log] [blame]
From 77c4064a4df38a45d1504aab8d0116aa4d10c335 Mon Sep 17 00:00:00 2001
From: Paul Gortmaker <paul.gortmaker@windriver.com>
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 <tglx@linutronix.de>
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 <tglx@linutronix.de>
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 <paul.gortmaker@windriver.com>
diff --git a/include/linux/sched.h b/include/linux/sched.h
index 8dbd95c..e07e7ef 100644
--- a/include/linux/sched.h
+++ b/include/linux/sched.h
@@ -2538,10 +2538,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.1.1