aboutsummaryrefslogtreecommitdiffstats
path: root/include/asm-powerpc/hardirq.h
diff options
context:
space:
mode:
authorlinuxppc@jdl.com <linuxppc@jdl.com>2005-09-19 09:32:07 -0500
committerPaul Mackerras <paulus@samba.org>2005-09-21 19:21:09 +1000
commit3e57615bb5a8b6208627049884ee441f6d05905e (patch)
treece59d350bcb9e9fa6469b3bdefc7f25b3897bfa3 /include/asm-powerpc/hardirq.h
parent[PATCH] powerpc: unified signature of timer_interrupt() between ppc32/ppc64 (diff)
downloadlinux-dev-3e57615bb5a8b6208627049884ee441f6d05905e.tar.xz
linux-dev-3e57615bb5a8b6208627049884ee441f6d05905e.zip
[PATCH] powerpc: Revised merge asm-ppc*/hardirq.h
This is a revised patch to merge asm-ppc*/hardirq.h. It removes some unnecessary #includes, but then requires the addition of #include <asm/irq.h> in PPC32's hw_irq.h much like ppc64 already does. Furthermore, several unnecessary #includes were removed from some ppc32 boards in order to break resulting bad #include cycles. Builds pSeries_defconfig and all ppc32 platforms except the already b0rken bseip. Signed-off-by: Jon Loeliger <jdl@freescale.com> Signed-off-by: Kumar Gala <kumar.gala@freescale.com> Signed-off-by: Paul Mackerras <paulus@samba.org>
Diffstat (limited to 'include/asm-powerpc/hardirq.h')
-rw-r--r--include/asm-powerpc/hardirq.h24
1 files changed, 24 insertions, 0 deletions
diff --git a/include/asm-powerpc/hardirq.h b/include/asm-powerpc/hardirq.h
new file mode 100644
index 000000000000..2c0a31b1008d
--- /dev/null
+++ b/include/asm-powerpc/hardirq.h
@@ -0,0 +1,24 @@
+#ifndef _ASM_POWERPC_HARDIRQ_H
+#define _ASM_POWERPC_HARDIRQ_H
+
+/* The __last_jiffy_stamp field is needed to ensure that no decrementer
+ * interrupt is lost on SMP machines. Since on most CPUs it is in the same
+ * cache line as local_irq_count, it is cheap to access and is also used on UP
+ * for uniformity.
+ */
+typedef struct {
+ unsigned int __softirq_pending; /* set_bit is used on this */
+ unsigned int __last_jiffy_stamp;
+} ____cacheline_aligned irq_cpustat_t;
+
+#include <linux/irq_cpustat.h> /* Standard mappings for irq_cpustat_t above */
+
+#define last_jiffy_stamp(cpu) __IRQ_STAT((cpu), __last_jiffy_stamp)
+
+static inline void ack_bad_irq(int irq)
+{
+ printk(KERN_CRIT "illegal vector %d received!\n", irq);
+ BUG();
+}
+
+#endif /* _ASM_POWERPC_HARDIRQ_H */