|
@@ -163,12 +163,20 @@ static inline int arch_irqs_disabled(void)
|
|
|
|
|
|
return arch_irqs_disabled_flags(flags);
|
|
return arch_irqs_disabled_flags(flags);
|
|
}
|
|
}
|
|
|
|
+#endif /* !__ASSEMBLY__ */
|
|
|
|
|
|
|
|
+#ifdef __ASSEMBLY__
|
|
|
|
+#ifdef CONFIG_TRACE_IRQFLAGS
|
|
|
|
+# define TRACE_IRQS_ON call trace_hardirqs_on_thunk;
|
|
|
|
+# define TRACE_IRQS_OFF call trace_hardirqs_off_thunk;
|
|
#else
|
|
#else
|
|
-
|
|
|
|
-#ifdef CONFIG_X86_64
|
|
|
|
-#define ARCH_LOCKDEP_SYS_EXIT call lockdep_sys_exit_thunk
|
|
|
|
-#define ARCH_LOCKDEP_SYS_EXIT_IRQ \
|
|
|
|
|
|
+# define TRACE_IRQS_ON
|
|
|
|
+# define TRACE_IRQS_OFF
|
|
|
|
+#endif
|
|
|
|
+#ifdef CONFIG_DEBUG_LOCK_ALLOC
|
|
|
|
+# ifdef CONFIG_X86_64
|
|
|
|
+# define ARCH_LOCKDEP_SYS_EXIT call lockdep_sys_exit_thunk
|
|
|
|
+# define ARCH_LOCKDEP_SYS_EXIT_IRQ \
|
|
TRACE_IRQS_ON; \
|
|
TRACE_IRQS_ON; \
|
|
sti; \
|
|
sti; \
|
|
SAVE_EXTRA_REGS; \
|
|
SAVE_EXTRA_REGS; \
|
|
@@ -176,9 +184,8 @@ static inline int arch_irqs_disabled(void)
|
|
RESTORE_EXTRA_REGS; \
|
|
RESTORE_EXTRA_REGS; \
|
|
cli; \
|
|
cli; \
|
|
TRACE_IRQS_OFF;
|
|
TRACE_IRQS_OFF;
|
|
-
|
|
|
|
-#else
|
|
|
|
-#define ARCH_LOCKDEP_SYS_EXIT \
|
|
|
|
|
|
+# else
|
|
|
|
+# define ARCH_LOCKDEP_SYS_EXIT \
|
|
pushl %eax; \
|
|
pushl %eax; \
|
|
pushl %ecx; \
|
|
pushl %ecx; \
|
|
pushl %edx; \
|
|
pushl %edx; \
|
|
@@ -186,24 +193,14 @@ static inline int arch_irqs_disabled(void)
|
|
popl %edx; \
|
|
popl %edx; \
|
|
popl %ecx; \
|
|
popl %ecx; \
|
|
popl %eax;
|
|
popl %eax;
|
|
-
|
|
|
|
-#define ARCH_LOCKDEP_SYS_EXIT_IRQ
|
|
|
|
-#endif
|
|
|
|
-
|
|
|
|
-#ifdef CONFIG_TRACE_IRQFLAGS
|
|
|
|
-# define TRACE_IRQS_ON call trace_hardirqs_on_thunk;
|
|
|
|
-# define TRACE_IRQS_OFF call trace_hardirqs_off_thunk;
|
|
|
|
-#else
|
|
|
|
-# define TRACE_IRQS_ON
|
|
|
|
-# define TRACE_IRQS_OFF
|
|
|
|
-#endif
|
|
|
|
-#ifdef CONFIG_DEBUG_LOCK_ALLOC
|
|
|
|
|
|
+# define ARCH_LOCKDEP_SYS_EXIT_IRQ
|
|
|
|
+# endif
|
|
# define LOCKDEP_SYS_EXIT ARCH_LOCKDEP_SYS_EXIT
|
|
# define LOCKDEP_SYS_EXIT ARCH_LOCKDEP_SYS_EXIT
|
|
# define LOCKDEP_SYS_EXIT_IRQ ARCH_LOCKDEP_SYS_EXIT_IRQ
|
|
# define LOCKDEP_SYS_EXIT_IRQ ARCH_LOCKDEP_SYS_EXIT_IRQ
|
|
# else
|
|
# else
|
|
# define LOCKDEP_SYS_EXIT
|
|
# define LOCKDEP_SYS_EXIT
|
|
# define LOCKDEP_SYS_EXIT_IRQ
|
|
# define LOCKDEP_SYS_EXIT_IRQ
|
|
# endif
|
|
# endif
|
|
-
|
|
|
|
#endif /* __ASSEMBLY__ */
|
|
#endif /* __ASSEMBLY__ */
|
|
|
|
+
|
|
#endif
|
|
#endif
|