PATCH: irqflags.h

From: startww3
Date: Mon Dec 21 2009 - 23:57:40 EST


The following diff -up patch was tested OK
on AMD K8 2.6.31.5-127 (Fedora 12 standard release)
for the file: include/linux/irqflags.h

Other platforms are untested.
===================================================================================

--- linux-2.6.31/include/linux/irqflags.h.orig 2009-12-21 21:24:55.000000000 -0500
+++ linux-2.6.31/include/linux/irqflags.h 2009-12-21 22:35:44.000000000 -0500
@@ -1,4 +1,22 @@
/*
+
+ * PATCH Description -
+ *
+ * fixes defines for:
+ * local_irq_enable, local_irq_disable, local_irq_save, local_irq_restore,
+ * safe_halt, local_save_flags, irqs_disabled, irqs_disabled_flags
+ * when CONFIG_TRACE_IRQFLAGS_SUPPORT=n
+ * i.e. (arch/x86/Kconfig.debug contains:
+ * config TRACE_IRQFLAGS_SUPPORT def_bool n)
+ *
+ * applies to kernel-2.6.31.5-127 (Fedora 12 standard release).
+ *
+ * This patch has tested ok on AMD K8 Fedora 12.
+ *
+ * Signed-off-by: RF <startww3@xxxxxxxxx>
+
+
+
* include/linux/irqflags.h
*
* IRQ flags tracing: follow the state of the hardirq and softirq flags and
@@ -80,24 +98,29 @@
} \
} while (0)
#else /* !CONFIG_TRACE_IRQFLAGS_SUPPORT */
-/*
- * The local_irq_*() APIs are equal to the raw_local_irq*()
- * if !TRACE_IRQFLAGS.
- */
-# define raw_local_irq_disable() local_irq_disable()
-# define raw_local_irq_enable() local_irq_enable()
-# define raw_local_irq_save(flags) \
- do { \
- typecheck(unsigned long, flags); \
- local_irq_save(flags); \
- } while (0)
-# define raw_local_irq_restore(flags) \
- do { \
- typecheck(unsigned long, flags); \
- local_irq_restore(flags); \
- } while (0)
+
+#include <asm/irqflags.h>
+
+#define local_irq_enable() raw_local_irq_enable()
+#define local_irq_disable() raw_local_irq_disable()
+
+#define local_irq_save(flags) \
+({ \
+ typecheck(unsigned long, flags); \
+ raw_local_irq_save(flags); \
+})
+
+#define local_irq_restore(flags) \
+({ \
+ typecheck(unsigned long, flags); \
+ raw_local_irq_restore(flags); \
+})
+
#endif /* CONFIG_TRACE_IRQFLAGS_SUPPORT */

+
+
+
#ifdef CONFIG_TRACE_IRQFLAGS_SUPPORT
#define safe_halt() \
do { \
@@ -105,25 +128,39 @@
raw_safe_halt(); \
} while (0)

-#define local_save_flags(flags) \
- do { \
- typecheck(unsigned long, flags); \
- raw_local_save_flags(flags); \
+#define local_save_flags(flags) \
+ do { \
+ typecheck(unsigned long, flags); \
+ raw_local_save_flags(flags); \
} while (0)

-#define irqs_disabled() \
+
+#else
+
+#define safe_halt() raw_safe_halt()
+
+#define local_save_flags(flags) \
({ \
- unsigned long _flags; \
- \
- raw_local_save_flags(_flags); \
- raw_irqs_disabled_flags(_flags); \
+ typecheck(unsigned long, flags); \
+ raw_local_save_flags(flags); \
+})
+
+
+#endif /* CONFIG_TRACE_IRQFLAGS_SUPPORT */
+
+
+
+
+#define irqs_disabled() \
+({ \
+ unsigned long _flags; \
+ raw_irqs_disabled(); \
})

-#define irqs_disabled_flags(flags) \
-({ \
- typecheck(unsigned long, flags); \
- raw_irqs_disabled_flags(flags); \
+#define irqs_disabled_flags(flags) \
+({ \
+ typecheck(unsigned long, flags); \
+ raw_irqs_disabled_flags(flags); \
})
-#endif /* CONFIG_X86 */

#endif

____________________________________________________________
FREE 3D EARTH SCREENSAVER - Watch the Earth right on your desktop!
Check it out at http://www.inbox.com/earth
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/