[PATCH 14/22] Fix Alpha irqflags

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: David Howells
Date: Thursday, August 26, 2010 - 7:00 pm

---

 arch/alpha/include/asm/irqflags.h |   65 +++++++++++++++++++++++++++++++++++++
 arch/alpha/include/asm/system.h   |   28 ----------------
 2 files changed, 65 insertions(+), 28 deletions(-)
 create mode 100644 arch/alpha/include/asm/irqflags.h

diff --git a/arch/alpha/include/asm/irqflags.h b/arch/alpha/include/asm/irqflags.h
new file mode 100644
index 0000000..75dfe395
--- /dev/null
+++ b/arch/alpha/include/asm/irqflags.h
@@ -0,0 +1,65 @@
+#ifndef __ALPHA_IRQFLAGS_H
+#define __ALPHA_IRQFLAGS_H
+
+#define IPL_MIN		0
+#define IPL_SW0		1
+#define IPL_SW1		2
+#define IPL_DEV0	3
+#define IPL_DEV1	4
+#define IPL_TIMER	5
+#define IPL_PERF	6
+#define IPL_POWERFAIL	6
+#define IPL_MCHECK	7
+#define IPL_MAX		7
+
+#ifdef CONFIG_ALPHA_BROKEN_IRQ_MASK
+#undef IPL_MIN
+#define IPL_MIN		__min_ipl
+extern int __min_ipl;
+#endif
+
+#define getipl()		(rdps() & 7)
+#define setipl(ipl)		((void) swpipl(ipl))
+
+static inline unsigned long arch_local_save_flags(void)
+{
+	return rdps();
+}
+
+static inline void arch_local_irq_disable(void)
+{
+	setipl(IPL_MAX);
+	barrier();
+}
+
+static inline unsigned long arch_local_irq_save(void)
+{
+	unsigned long flags = swpipl(IPL_MAX);
+	barrier();
+	return flags;
+}
+
+static inline void arch_local_irq_enable(void)
+{
+	barrier();
+	setipl(IPL_MIN);
+}
+
+static inline void arch_local_irq_restore(unsigned long flags)
+{
+	barrier();
+	setipl(flags);
+	barrier();
+}
+
+static inline bool arch_irqs_disabled_flags(unsigned long flags)
+{
+	return flags == IPL_MAX;
+}
+
+static inline bool arch_irqs_disabled(void)
+{
+	return arch_irqs_disabled_flags(getipl());
+}
+
+#endif /* __ALPHA_IRQFLAGS_H */
diff --git a/arch/alpha/include/asm/system.h b/arch/alpha/include/asm/system.h
index 5aa40cc..9f78e69 100644
--- a/arch/alpha/include/asm/system.h
+++ b/arch/alpha/include/asm/system.h
@@ -259,34 +259,6 @@ __CALL_PAL_RW2(wrperfmon, unsigned long, unsigned long, unsigned long);
 __CALL_PAL_W1(wrusp, unsigned long);
 __CALL_PAL_W1(wrvptptr, unsigned long);
 
-#define IPL_MIN		0
-#define IPL_SW0		1
-#define IPL_SW1		2
-#define IPL_DEV0	3
-#define IPL_DEV1	4
-#define IPL_TIMER	5
-#define IPL_PERF	6
-#define IPL_POWERFAIL	6
-#define IPL_MCHECK	7
-#define IPL_MAX		7
-
-#ifdef CONFIG_ALPHA_BROKEN_IRQ_MASK
-#undef IPL_MIN
-#define IPL_MIN		__min_ipl
-extern int __min_ipl;
-#endif
-
-#define getipl()		(rdps() & 7)
-#define setipl(ipl)		((void) swpipl(ipl))
-
-#define local_irq_disable()			do { setipl(IPL_MAX); barrier(); } while(0)
-#define local_irq_enable()			do { barrier(); setipl(IPL_MIN); } while(0)
-#define local_save_flags(flags)	((flags) = rdps())
-#define local_irq_save(flags)	do { (flags) = swpipl(IPL_MAX); barrier(); } while(0)
-#define local_irq_restore(flags)	do { barrier(); setipl(flags); barrier(); } while(0)
-
-#define irqs_disabled()	(getipl() == IPL_MAX)
-
 /*
  * TB routines..
  */

--
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
[PATCH 00/22] Name the irq flag handling functions sanely, David Howells, (Thu Aug 26, 6:59 pm)
[PATCH 06/22] Blackfin: Add missing dep to asm/irqflags.h, David Howells, (Thu Aug 26, 6:59 pm)
[PATCH 09/22] h8300: Fix die(), David Howells, (Thu Aug 26, 6:59 pm)
[PATCH 12/22] Fix IRQ flag handling naming, David Howells, (Thu Aug 26, 7:00 pm)
[PATCH 13/22] MIPS: Fix IRQ flags handling, David Howells, (Thu Aug 26, 7:00 pm)
[PATCH 14/22] Fix Alpha irqflags, David Howells, (Thu Aug 26, 7:00 pm)
[PATCH 15/22] Fix H8300 arch, David Howells, (Thu Aug 26, 7:00 pm)
[PATCH 16/22] Fix IA64 irqflags, David Howells, (Thu Aug 26, 7:00 pm)
[PATCH 17/22] Fix m32r irqflags, David Howells, (Thu Aug 26, 7:00 pm)
[PATCH 18/22] Fix M68K irqflags, David Howells, (Thu Aug 26, 7:00 pm)
[PATCH 19/22] Fix PA-RISC irqflags, David Howells, (Thu Aug 26, 7:00 pm)
[PATCH 20/22] Fix powerpc irqflags, David Howells, (Thu Aug 26, 7:00 pm)
[PATCH 21/22] Fix SH irqflags, David Howells, (Thu Aug 26, 7:00 pm)
[PATCH 22/22] Fix Sparc irqflags, David Howells, (Thu Aug 26, 7:00 pm)
Re: [PATCH 18/22] Fix M68K irqflags, Greg Ungerer, (Mon Aug 30, 12:12 am)
Re: [PATCH 18/22] Fix M68K irqflags, David Howells, (Mon Aug 30, 1:50 pm)
Re: [PATCH 18/22] Fix M68K irqflags, Geert Uytterhoeven, (Tue Aug 31, 12:36 am)
Re: [PATCH 18/22] Fix M68K irqflags, David Howells, (Tue Aug 31, 9:00 am)
Re: [PATCH 18/22] Fix M68K irqflags, Greg Ungerer, (Tue Aug 31, 11:33 pm)
Re: [PATCH 18/22] Fix M68K irqflags, Greg Ungerer, (Tue Aug 31, 11:38 pm)
Re: [PATCH 18/22] Fix M68K irqflags, David Howells, (Wed Sep 1, 3:43 am)
Re: [PATCH 18/22] Fix M68K irqflags, David Howells, (Wed Sep 1, 3:46 am)
Re: [PATCH 18/22] Fix M68K irqflags, Greg Ungerer, (Wed Sep 1, 4:21 am)
Re: [PATCH 18/22] Fix M68K irqflags, Greg Ungerer, (Wed Sep 1, 4:22 am)
Re: [PATCH 18/22] Fix M68K irqflags, David Howells, (Wed Sep 1, 4:30 am)
Re: [PATCH 18/22] Fix M68K irqflags, David Howells, (Wed Sep 1, 4:31 am)
Re: [PATCH 18/22] Fix M68K irqflags, Greg Ungerer, (Wed Sep 1, 4:36 am)
Re: [PATCH 18/22] Fix M68K irqflags, David Howells, (Wed Sep 1, 5:03 am)
Re: [PATCH 18/22] Fix M68K irqflags, Greg Ungerer, (Wed Sep 1, 6:46 pm)
Re: [PATCH 18/22] Fix M68K irqflags, David Howells, (Thu Sep 2, 3:20 am)
[PATCH 3/3] Fix M68K irqflags, David Howells, (Thu Sep 2, 3:22 am)
Re: [PATCH 2/3] M68K: Use CONFIG_MMU not __uClinux__ to se ..., Geert Uytterhoeven, (Thu Sep 2, 12:53 pm)
Re: [PATCH 3/3] Fix M68K irqflags, Greg Ungerer, (Thu Sep 2, 6:28 pm)
Re: [PATCH 19/22] Fix PA-RISC irqflags, Kyle McMartin, (Thu Sep 2, 6:40 pm)
Re: [PATCH 3/3] Fix M68K irqflags, David Howells, (Thu Sep 2, 11:44 pm)
Re: [PATCH 19/22] Fix PA-RISC irqflags, David Howells, (Thu Sep 2, 11:48 pm)
Re: [PATCH 3/3] Fix M68K irqflags, Greg Ungerer, (Thu Sep 2, 11:53 pm)
Re: [PATCH 3/3] Fix M68K irqflags, David Howells, (Fri Sep 3, 12:28 am)
Re: [PATCH 3/3] Fix M68K irqflags, David Howells, (Fri Sep 3, 1:05 am)
Re: [PATCH 3/3] Fix M68K irqflags, Greg Ungerer, (Fri Sep 3, 2:28 am)
Re: [PATCH 2/3] M68K: Use CONFIG_MMU not __uClinux__ to se ..., Geert Uytterhoeven, (Fri Sep 3, 2:33 am)
Re: [PATCH 2/3] M68K: Use CONFIG_MMU not __uClinux__ to se ..., Geert Uytterhoeven, (Fri Sep 3, 3:02 am)
Re: [PATCH 3/3] Fix M68K irqflags, David Howells, (Fri Sep 3, 3:05 am)
Re: [PATCH 3/3] Fix M68K irqflags, Greg Ungerer, (Fri Sep 3, 3:38 am)
Re: [PATCH 19/22] Fix PA-RISC irqflags, Kyle McMartin, (Fri Sep 3, 6:31 am)