136,10 → 136,6 |
#define USERGS_SYSRET32 \ |
swapgs; \ |
sysretl |
#define ENABLE_INTERRUPTS_SYSEXIT32 \ |
swapgs; \ |
sti; \ |
sysexit |
|
#else |
#define INTERRUPT_RETURN iret |
163,22 → 159,27 |
|
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 |
|
# 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 \ |
# define LOCKDEP_SYS_EXIT call lockdep_sys_exit_thunk |
# define LOCKDEP_SYS_EXIT_IRQ \ |
TRACE_IRQS_ON; \ |
sti; \ |
SAVE_REST; \ |
LOCKDEP_SYS_EXIT; \ |
RESTORE_REST; \ |
call lockdep_sys_exit_thunk; \ |
cli; \ |
TRACE_IRQS_OFF; |
|
#else |
#define ARCH_LOCKDEP_SYS_EXIT \ |
# define LOCKDEP_SYS_EXIT \ |
pushl %eax; \ |
pushl %ecx; \ |
pushl %edx; \ |
186,24 → 187,12 |
popl %edx; \ |
popl %ecx; \ |
popl %eax; |
|
#define ARCH_LOCKDEP_SYS_EXIT_IRQ |
# define 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 LOCKDEP_SYS_EXIT ARCH_LOCKDEP_SYS_EXIT |
# define LOCKDEP_SYS_EXIT_IRQ ARCH_LOCKDEP_SYS_EXIT_IRQ |
# else |
# define LOCKDEP_SYS_EXIT |
# define LOCKDEP_SYS_EXIT_IRQ |
# endif |
#endif /* __ASSEMBLY__ */ |
|
#endif /* __ASSEMBLY__ */ |
#endif |