summaryrefslogtreecommitdiff
path: root/include/linux
diff options
context:
space:
mode:
authorChristoph Hellwig <hch@lst.de>2005-01-04 05:26:18 -0800
committerLinus Torvalds <torvalds@ppc970.osdl.org>2005-01-04 05:26:18 -0800
commit67c69b53336d5e822e759a3590a77bb10bc97aa4 (patch)
tree1c69a74ff63a1420172dc82101c01ca34ff2c3f6 /include/linux
parent08ccfcc14c06015f62144b309ceab92abf510bd6 (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.h2
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 */