Rev 5270 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 5270 | Rev 6082 | ||
---|---|---|---|
Line 134... | Line 134... | ||
134 | swapgs; \ |
134 | swapgs; \ |
135 | sysretq; |
135 | sysretq; |
136 | #define USERGS_SYSRET32 \ |
136 | #define USERGS_SYSRET32 \ |
137 | swapgs; \ |
137 | swapgs; \ |
138 | sysretl |
138 | sysretl |
139 | #define ENABLE_INTERRUPTS_SYSEXIT32 \ |
- | |
140 | swapgs; \ |
- | |
141 | sti; \ |
- | |
142 | sysexit |
- | |
Line 143... | Line 139... | ||
143 | 139 | ||
144 | #else |
140 | #else |
145 | #define INTERRUPT_RETURN iret |
141 | #define INTERRUPT_RETURN iret |
146 | #define ENABLE_INTERRUPTS_SYSEXIT sti; sysexit |
142 | #define ENABLE_INTERRUPTS_SYSEXIT sti; sysexit |
Line 161... | Line 157... | ||
161 | { |
157 | { |
162 | unsigned long flags = arch_local_save_flags(); |
158 | unsigned long flags = arch_local_save_flags(); |
Line 163... | Line 159... | ||
163 | 159 | ||
164 | return arch_irqs_disabled_flags(flags); |
160 | return arch_irqs_disabled_flags(flags); |
- | 161 | } |
|
Line -... | Line 162... | ||
- | 162 | #endif /* !__ASSEMBLY__ */ |
|
- | 163 | ||
- | 164 | #ifdef __ASSEMBLY__ |
|
- | 165 | #ifdef CONFIG_TRACE_IRQFLAGS |
|
165 | } |
166 | # define TRACE_IRQS_ON call trace_hardirqs_on_thunk; |
- | 167 | # define TRACE_IRQS_OFF call trace_hardirqs_off_thunk; |
|
- | 168 | #else |
|
166 | 169 | # define TRACE_IRQS_ON |
|
- | 170 | # define TRACE_IRQS_OFF |
|
167 | #else |
171 | #endif |
168 | 172 | #ifdef CONFIG_DEBUG_LOCK_ALLOC |
|
169 | #ifdef CONFIG_X86_64 |
173 | # ifdef CONFIG_X86_64 |
170 | #define ARCH_LOCKDEP_SYS_EXIT call lockdep_sys_exit_thunk |
174 | # define LOCKDEP_SYS_EXIT call lockdep_sys_exit_thunk |
171 | #define ARCH_LOCKDEP_SYS_EXIT_IRQ \ |
175 | # define LOCKDEP_SYS_EXIT_IRQ \ |
172 | TRACE_IRQS_ON; \ |
- | |
173 | sti; \ |
176 | TRACE_IRQS_ON; \ |
174 | SAVE_REST; \ |
- | |
175 | LOCKDEP_SYS_EXIT; \ |
177 | sti; \ |
176 | RESTORE_REST; \ |
178 | call lockdep_sys_exit_thunk; \ |
177 | cli; \ |
- | |
178 | TRACE_IRQS_OFF; |
179 | cli; \ |
179 | 180 | TRACE_IRQS_OFF; |
|
180 | #else |
181 | # else |
181 | #define ARCH_LOCKDEP_SYS_EXIT \ |
182 | # define LOCKDEP_SYS_EXIT \ |
182 | pushl %eax; \ |
183 | pushl %eax; \ |
183 | pushl %ecx; \ |
184 | pushl %ecx; \ |
184 | pushl %edx; \ |
185 | pushl %edx; \ |
185 | call lockdep_sys_exit; \ |
186 | call lockdep_sys_exit; \ |
186 | popl %edx; \ |
187 | popl %edx; \ |
187 | popl %ecx; \ |
- | |
188 | popl %eax; |
188 | popl %ecx; \ |
189 | - | ||
190 | #define ARCH_LOCKDEP_SYS_EXIT_IRQ |
- | |
191 | #endif |
- | |
192 | - | ||
193 | #ifdef CONFIG_TRACE_IRQFLAGS |
- | |
194 | # define TRACE_IRQS_ON call trace_hardirqs_on_thunk; |
- | |
195 | # define TRACE_IRQS_OFF call trace_hardirqs_off_thunk; |
- | |
196 | #else |
- | |
197 | # define TRACE_IRQS_ON |
189 | popl %eax; |
198 | # define TRACE_IRQS_OFF |
- | |
199 | #endif |
- | |
200 | #ifdef CONFIG_DEBUG_LOCK_ALLOC |
- | |
201 | # define LOCKDEP_SYS_EXIT ARCH_LOCKDEP_SYS_EXIT |
190 | # define LOCKDEP_SYS_EXIT_IRQ |
202 | # define LOCKDEP_SYS_EXIT_IRQ ARCH_LOCKDEP_SYS_EXIT_IRQ |
191 | # endif |
203 | # else |
192 | #else |
204 | # define LOCKDEP_SYS_EXIT |
193 | # define LOCKDEP_SYS_EXIT |
205 | # define LOCKDEP_SYS_EXIT_IRQ |
- | |
206 | # endif |
194 | # define LOCKDEP_SYS_EXIT_IRQ |
- | 195 | #endif |
|
207 | 196 | #endif /* __ASSEMBLY__ */ |