summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArnd Bergmann <arnd@arndb.de>2010-10-28 16:12:33 +0200
committerLinus Torvalds <torvalds@linux-foundation.org>2010-11-02 13:39:13 +0100
commit7fe19da4ca38fc20cdbc7020fcf2eca8fc756410 (patch)
tree35a15dd2bdc4f70b312141fe768ed093df1f8188
parentkconfig: sym_expand_string_value: allow for string termination when reallocing (diff)
downloadlinux-7fe19da4ca38fc20cdbc7020fcf2eca8fc756410.tar.xz
linux-7fe19da4ca38fc20cdbc7020fcf2eca8fc756410.zip
preempt: fix kernel build with !CONFIG_BKL
The preempt count logic tries to take the BKL into account, which breaks when CONFIG_BKL is not set. Use the same preempt_count offset that we use without CONFIG_PREEMPT when CONFIG_BKL is disabled. Signed-off-by: Arnd Bergmann <arnd@arndb.de> Reported-and-tested-by: Kirill A. Shutemov <kirill@shutemov.name> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-rw-r--r--include/linux/hardirq.h8
1 files changed, 6 insertions, 2 deletions
diff --git a/include/linux/hardirq.h b/include/linux/hardirq.h
index 8a389b608ce3..41cb31f14ee3 100644
--- a/include/linux/hardirq.h
+++ b/include/linux/hardirq.h
@@ -96,11 +96,15 @@
*/
#define in_nmi() (preempt_count() & NMI_MASK)
-#if defined(CONFIG_PREEMPT)
+#if defined(CONFIG_PREEMPT) && defined(CONFIG_BKL)
# define PREEMPT_INATOMIC_BASE kernel_locked()
-# define PREEMPT_CHECK_OFFSET 1
#else
# define PREEMPT_INATOMIC_BASE 0
+#endif
+
+#if defined(CONFIG_PREEMPT)
+# define PREEMPT_CHECK_OFFSET 1
+#else
# define PREEMPT_CHECK_OFFSET 0
#endif