Merge branch 'for-4.1/drivers' of git://git.kernel.dk/linux-block
[firefly-linux-kernel-4.4.55.git] / include / linux / irqflags.h
index d176d658fe25dd6b09b3d03936a4b60ce324367c..5dd1272d1ab2ecb283f588eb95ba1ebd81369dd9 100644 (file)
@@ -85,7 +85,7 @@
  * The local_irq_*() APIs are equal to the raw_local_irq*()
  * if !TRACE_IRQFLAGS.
  */
-#ifdef CONFIG_TRACE_IRQFLAGS_SUPPORT
+#ifdef CONFIG_TRACE_IRQFLAGS
 #define local_irq_enable() \
        do { trace_hardirqs_on(); raw_local_irq_enable(); } while (0)
 #define local_irq_disable() \
                        raw_local_irq_restore(flags);   \
                }                                       \
        } while (0)
-#define local_save_flags(flags)                                \
-       do {                                            \
-               raw_local_save_flags(flags);            \
-       } while (0)
-
-#define irqs_disabled_flags(flags)                     \
-       ({                                              \
-               raw_irqs_disabled_flags(flags);         \
-       })
-
-#define irqs_disabled()                                        \
-       ({                                              \
-               unsigned long _flags;                   \
-               raw_local_save_flags(_flags);           \
-               raw_irqs_disabled_flags(_flags);        \
-       })
 
 #define safe_halt()                            \
        do {                                    \
        } while (0)
 
 
-#else /* !CONFIG_TRACE_IRQFLAGS_SUPPORT */
+#else /* !CONFIG_TRACE_IRQFLAGS */
 
 #define local_irq_enable()     do { raw_local_irq_enable(); } while (0)
 #define local_irq_disable()    do { raw_local_irq_disable(); } while (0)
                raw_local_irq_save(flags);                      \
        } while (0)
 #define local_irq_restore(flags) do { raw_local_irq_restore(flags); } while (0)
-#define local_save_flags(flags)        do { raw_local_save_flags(flags); } while (0)
-#define irqs_disabled()                (raw_irqs_disabled())
-#define irqs_disabled_flags(flags) (raw_irqs_disabled_flags(flags))
 #define safe_halt()            do { raw_safe_halt(); } while (0)
 
+#endif /* CONFIG_TRACE_IRQFLAGS */
+
+#define local_save_flags(flags)        raw_local_save_flags(flags)
+
+/*
+ * Some architectures don't define arch_irqs_disabled(), so even if either
+ * definition would be fine we need to use different ones for the time being
+ * to avoid build issues.
+ */
+#ifdef CONFIG_TRACE_IRQFLAGS_SUPPORT
+#define irqs_disabled()                                        \
+       ({                                              \
+               unsigned long _flags;                   \
+               raw_local_save_flags(_flags);           \
+               raw_irqs_disabled_flags(_flags);        \
+       })
+#else /* !CONFIG_TRACE_IRQFLAGS_SUPPORT */
+#define irqs_disabled()        raw_irqs_disabled()
 #endif /* CONFIG_TRACE_IRQFLAGS_SUPPORT */
 
+#define irqs_disabled_flags(flags) raw_irqs_disabled_flags(flags)
+
 #endif