| From stable-bounces@linux.kernel.org Wed Dec 6 20:37:11 2006 |
| Message-Id: <200612070431.kB74VVj5028746@shell0.pdx.osdl.net> |
| To: torvalds@osdl.org |
| From: akpm@osdl.org |
| Date: Wed, 06 Dec 2006 20:31:30 -0800 |
| Cc: akpm@osdl.org, mingo@elte.hu, rdunlap@xenotime.net, ak@suse.de, stable@kernel.org |
| Subject: add bottom_half.h |
| |
| From: Andrew Morton <akpm@osdl.org> |
| |
| 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 bothj 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: Chris Wright <chrisw@sous-sol.org> |
| --- |
| |
| include/linux/bottom_half.h | 5 +++++ |
| include/linux/interrupt.h | 7 +------ |
| include/linux/spinlock.h | 1 + |
| 3 files changed, 7 insertions(+), 6 deletions(-) |
| |
| --- /dev/null |
| +++ linux-2.6.19/include/linux/bottom_half.h |
| @@ -0,0 +1,5 @@ |
| +extern void local_bh_disable(void); |
| +extern void __local_bh_enable(void); |
| +extern void _local_bh_enable(void); |
| +extern void local_bh_enable(void); |
| +extern void local_bh_enable_ip(unsigned long ip); |
| --- linux-2.6.19.orig/include/linux/interrupt.h |
| +++ linux-2.6.19/include/linux/interrupt.h |
| @@ -11,6 +11,7 @@ |
| #include <linux/hardirq.h> |
| #include <linux/sched.h> |
| #include <linux/irqflags.h> |
| +#include <linux/bottom_half.h> |
| #include <asm/atomic.h> |
| #include <asm/ptrace.h> |
| #include <asm/system.h> |
| @@ -217,12 +218,6 @@ static inline void __deprecated save_and |
| #define save_and_cli(x) save_and_cli(&x) |
| #endif /* CONFIG_SMP */ |
| |
| -extern void local_bh_disable(void); |
| -extern void __local_bh_enable(void); |
| -extern void _local_bh_enable(void); |
| -extern void local_bh_enable(void); |
| -extern void local_bh_enable_ip(unsigned long ip); |
| - |
| /* PLEASE, avoid to allocate new softirqs, if you need not _really_ high |
| frequency threaded job scheduling. For almost all the purposes |
| tasklets are more than enough. F.e. all serial device BHs et |
| --- linux-2.6.19.orig/include/linux/spinlock.h |
| +++ linux-2.6.19/include/linux/spinlock.h |
| @@ -52,6 +52,7 @@ |
| #include <linux/thread_info.h> |
| #include <linux/kernel.h> |
| #include <linux/stringify.h> |
| +#include <linux/bottom_half.h> |
| |
| #include <asm/system.h> |
| |