diff options
author | Andrew Morton <akpm@osdl.org> | 2006-12-06 23:31:30 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.osdl.org> | 2006-12-07 11:39:20 -0500 |
commit | 676dcb8bc2ec78d80091037773598d6ec8c673d6 (patch) | |
tree | 70a82f63dcda34f8907ffd9e92898e8a8a5fef87 | |
parent | 620034c84d1d939717bdfbe02c51a3fee43541c3 (diff) |
[PATCH] add bottom_half.h
With CONFIG_SMP=n:
drivers/input/ff-memless.c:384: warning: implicit declaration of function 'local_bh_disable'
drivers/input/ff-memless.c:393: warning: implicit declaration of function 'local_bh_enable'
Really linux/spinlock.h should include linux/interrupt.h. But interrupt.h
includes sched.h which will need spinlock.h.
So the patch breaks the _bh declarations out into a separate header and
includes it in both interrupt.h and spinlock.h.
Cc: "Randy.Dunlap" <rdunlap@xenotime.net>
Cc: Andi Kleen <ak@suse.de>
Cc: <stable@kernel.org>
Cc: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-rw-r--r-- | include/linux/bottom_half.h | 10 | ||||
-rw-r--r-- | include/linux/interrupt.h | 7 | ||||
-rw-r--r-- | include/linux/spinlock.h | 1 |
3 files changed, 12 insertions, 6 deletions
diff --git a/include/linux/bottom_half.h b/include/linux/bottom_half.h new file mode 100644 index 000000000000..777dbf695d44 --- /dev/null +++ b/include/linux/bottom_half.h | |||
@@ -0,0 +1,10 @@ | |||
1 | #ifndef _LINUX_BH_H | ||
2 | #define _LINUX_BH_H | ||
3 | |||
4 | extern void local_bh_disable(void); | ||
5 | extern void __local_bh_enable(void); | ||
6 | extern void _local_bh_enable(void); | ||
7 | extern void local_bh_enable(void); | ||
8 | extern void local_bh_enable_ip(unsigned long ip); | ||
9 | |||
10 | #endif /* _LINUX_BH_H */ | ||
diff --git a/include/linux/interrupt.h b/include/linux/interrupt.h index 5b83e7b59621..de7593f4e895 100644 --- a/include/linux/interrupt.h +++ b/include/linux/interrupt.h | |||
@@ -11,6 +11,7 @@ | |||
11 | #include <linux/hardirq.h> | 11 | #include <linux/hardirq.h> |
12 | #include <linux/sched.h> | 12 | #include <linux/sched.h> |
13 | #include <linux/irqflags.h> | 13 | #include <linux/irqflags.h> |
14 | #include <linux/bottom_half.h> | ||
14 | #include <asm/atomic.h> | 15 | #include <asm/atomic.h> |
15 | #include <asm/ptrace.h> | 16 | #include <asm/ptrace.h> |
16 | #include <asm/system.h> | 17 | #include <asm/system.h> |
@@ -217,12 +218,6 @@ static inline void __deprecated save_and_cli(unsigned long *x) | |||
217 | #define save_and_cli(x) save_and_cli(&x) | 218 | #define save_and_cli(x) save_and_cli(&x) |
218 | #endif /* CONFIG_SMP */ | 219 | #endif /* CONFIG_SMP */ |
219 | 220 | ||
220 | extern void local_bh_disable(void); | ||
221 | extern void __local_bh_enable(void); | ||
222 | extern void _local_bh_enable(void); | ||
223 | extern void local_bh_enable(void); | ||
224 | extern void local_bh_enable_ip(unsigned long ip); | ||
225 | |||
226 | /* PLEASE, avoid to allocate new softirqs, if you need not _really_ high | 221 | /* PLEASE, avoid to allocate new softirqs, if you need not _really_ high |
227 | frequency threaded job scheduling. For almost all the purposes | 222 | frequency threaded job scheduling. For almost all the purposes |
228 | tasklets are more than enough. F.e. all serial device BHs et | 223 | tasklets are more than enough. F.e. all serial device BHs et |
diff --git a/include/linux/spinlock.h b/include/linux/spinlock.h index 8451052ca66f..94b767d64275 100644 --- a/include/linux/spinlock.h +++ b/include/linux/spinlock.h | |||
@@ -52,6 +52,7 @@ | |||
52 | #include <linux/thread_info.h> | 52 | #include <linux/thread_info.h> |
53 | #include <linux/kernel.h> | 53 | #include <linux/kernel.h> |
54 | #include <linux/stringify.h> | 54 | #include <linux/stringify.h> |
55 | #include <linux/bottom_half.h> | ||
55 | 56 | ||
56 | #include <asm/system.h> | 57 | #include <asm/system.h> |
57 | 58 | ||