]> rtime.felk.cvut.cz Git - zynq/linux.git/blobdiff - include/linux/irqflags.h
Apply preempt_rt patch-4.9-rt1.patch.xz
[zynq/linux.git] / include / linux / irqflags.h
index 5dd1272d1ab2ecb283f588eb95ba1ebd81369dd9..9b77034f7c5e763e373a36e269453138e5a6de19 100644 (file)
@@ -25,8 +25,6 @@
 # define trace_softirqs_enabled(p)     ((p)->softirqs_enabled)
 # define trace_hardirq_enter() do { current->hardirq_context++; } while (0)
 # define trace_hardirq_exit()  do { current->hardirq_context--; } while (0)
-# define lockdep_softirq_enter()       do { current->softirq_context++; } while (0)
-# define lockdep_softirq_exit()        do { current->softirq_context--; } while (0)
 # define INIT_TRACE_IRQFLAGS   .softirqs_enabled = 1,
 #else
 # define trace_hardirqs_on()           do { } while (0)
 # define trace_softirqs_enabled(p)     0
 # define trace_hardirq_enter()         do { } while (0)
 # define trace_hardirq_exit()          do { } while (0)
+# define INIT_TRACE_IRQFLAGS
+#endif
+
+#if defined(CONFIG_TRACE_IRQFLAGS) && !defined(CONFIG_PREEMPT_RT_FULL)
+# define lockdep_softirq_enter() do { current->softirq_context++; } while (0)
+# define lockdep_softirq_exit()         do { current->softirq_context--; } while (0)
+#else
 # define lockdep_softirq_enter()       do { } while (0)
 # define lockdep_softirq_exit()                do { } while (0)
-# define INIT_TRACE_IRQFLAGS
 #endif
 
 #if defined(CONFIG_IRQSOFF_TRACER) || \
 
 #define irqs_disabled_flags(flags) raw_irqs_disabled_flags(flags)
 
+/*
+ * local_irq* variants depending on RT/!RT
+ */
+#ifdef CONFIG_PREEMPT_RT_FULL
+# define local_irq_disable_nort()      do { } while (0)
+# define local_irq_enable_nort()       do { } while (0)
+# define local_irq_save_nort(flags)    local_save_flags(flags)
+# define local_irq_restore_nort(flags) (void)(flags)
+# define local_irq_disable_rt()                local_irq_disable()
+# define local_irq_enable_rt()         local_irq_enable()
+#else
+# define local_irq_disable_nort()      local_irq_disable()
+# define local_irq_enable_nort()       local_irq_enable()
+# define local_irq_save_nort(flags)    local_irq_save(flags)
+# define local_irq_restore_nort(flags) local_irq_restore(flags)
+# define local_irq_disable_rt()                do { } while (0)
+# define local_irq_enable_rt()         do { } while (0)
+#endif
+
 #endif