diff options
| author | Christoph Hellwig <hch@lst.de> | 2005-01-04 05:26:18 -0800 |
|---|---|---|
| committer | Linus Torvalds <torvalds@ppc970.osdl.org> | 2005-01-04 05:26:18 -0800 |
| commit | 67c69b53336d5e822e759a3590a77bb10bc97aa4 (patch) | |
| tree | 1c69a74ff63a1420172dc82101c01ca34ff2c3f6 /include/linux | |
| parent | 08ccfcc14c06015f62144b309ceab92abf510bd6 (diff) | |
[PATCH] move irq_enter and irq_exit to common code
This code is the same for all architectures with the following invariants:
- arm gurantees irqs are disabled when calling irq_exit so it can call
__do_softirq directly instead of do_softirq
- arm26 is totally broken for about half a year, I didn't care for it
- some architectures use softirq_pending(smp_processor_id()) instead of
local_softirq_pending, but they always evaluate to the same
This patch moves the out of line irq_exit implementation from
kernel/irq/handle.c which depends on CONFIG_GENERIC_HARDIRQS to
kernel/softirq.c which is always compiled, tweaks it for the arm special
case and moves the irq_enter/irq_exit/nmi_enter/nmi_exit bits from
asm-*/hardirq.h to linux/hardirq.h
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'include/linux')
| -rw-r--r-- | include/linux/hardirq.h | 2 |
1 files changed, 0 insertions, 2 deletions
diff --git a/include/linux/hardirq.h b/include/linux/hardirq.h index eae45cc3ea7a..afb35ca096e8 100644 --- a/include/linux/hardirq.h +++ b/include/linux/hardirq.h @@ -77,12 +77,10 @@ extern void synchronize_irq(unsigned int irq); # define synchronize_irq(irq) barrier() #endif -#ifdef CONFIG_GENERIC_HARDIRQS #define nmi_enter() (preempt_count() += HARDIRQ_OFFSET) #define nmi_exit() (preempt_count() -= HARDIRQ_OFFSET) #define irq_enter() (preempt_count() += HARDIRQ_OFFSET) extern void irq_exit(void); -#endif #endif /* LINUX_HARDIRQ_H */ |
