blob: b61e52418771aebf16f5ced63a8c8dc1fc12bad6 [file] [log] [blame]
From 82c552b519c9037eb23a74966b520e9e57836b23 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>
---
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