diff options
Diffstat (limited to 'arch/sh/kernel/entry-common.S')
-rw-r--r-- | arch/sh/kernel/entry-common.S | 16 |
1 files changed, 7 insertions, 9 deletions
diff --git a/arch/sh/kernel/entry-common.S b/arch/sh/kernel/entry-common.S index 5e0dd1933847..0bc17def55a7 100644 --- a/arch/sh/kernel/entry-common.S +++ b/arch/sh/kernel/entry-common.S | |||
@@ -202,7 +202,7 @@ work_resched: | |||
202 | syscall_exit_work: | 202 | syscall_exit_work: |
203 | ! r0: current_thread_info->flags | 203 | ! r0: current_thread_info->flags |
204 | ! r8: current_thread_info | 204 | ! r8: current_thread_info |
205 | tst #_TIF_SYSCALL_TRACE | _TIF_SINGLESTEP | _TIF_SYSCALL_AUDIT, r0 | 205 | tst #_TIF_WORK_SYSCALL_MASK, r0 |
206 | bt/s work_pending | 206 | bt/s work_pending |
207 | tst #_TIF_NEED_RESCHED, r0 | 207 | tst #_TIF_NEED_RESCHED, r0 |
208 | #ifdef CONFIG_TRACE_IRQFLAGS | 208 | #ifdef CONFIG_TRACE_IRQFLAGS |
@@ -211,10 +211,8 @@ syscall_exit_work: | |||
211 | nop | 211 | nop |
212 | #endif | 212 | #endif |
213 | sti | 213 | sti |
214 | ! XXX setup arguments... | ||
215 | mov r15, r4 | 214 | mov r15, r4 |
216 | mov #1, r5 | 215 | mov.l 8f, r0 ! do_syscall_trace_leave |
217 | mov.l 4f, r0 ! do_syscall_trace | ||
218 | jsr @r0 | 216 | jsr @r0 |
219 | nop | 217 | nop |
220 | bra resume_userspace | 218 | bra resume_userspace |
@@ -223,12 +221,11 @@ syscall_exit_work: | |||
223 | .align 2 | 221 | .align 2 |
224 | syscall_trace_entry: | 222 | syscall_trace_entry: |
225 | ! Yes it is traced. | 223 | ! Yes it is traced. |
226 | ! XXX setup arguments... | ||
227 | mov r15, r4 | 224 | mov r15, r4 |
228 | mov #0, r5 | 225 | mov.l 7f, r11 ! Call do_syscall_trace_enter which notifies |
229 | mov.l 4f, r11 ! Call do_syscall_trace which notifies | ||
230 | jsr @r11 ! superior (will chomp R[0-7]) | 226 | jsr @r11 ! superior (will chomp R[0-7]) |
231 | nop | 227 | nop |
228 | mov.l r0, @(OFF_R0,r15) ! Save return value | ||
232 | ! Reload R0-R4 from kernel stack, where the | 229 | ! Reload R0-R4 from kernel stack, where the |
233 | ! parent may have modified them using | 230 | ! parent may have modified them using |
234 | ! ptrace(POKEUSR). (Note that R0-R2 are | 231 | ! ptrace(POKEUSR). (Note that R0-R2 are |
@@ -351,7 +348,7 @@ ENTRY(system_call) | |||
351 | ! | 348 | ! |
352 | get_current_thread_info r8, r10 | 349 | get_current_thread_info r8, r10 |
353 | mov.l @(TI_FLAGS,r8), r8 | 350 | mov.l @(TI_FLAGS,r8), r8 |
354 | mov #(_TIF_SYSCALL_TRACE | _TIF_SYSCALL_AUDIT), r10 | 351 | mov #_TIF_WORK_SYSCALL_MASK, r10 |
355 | tst r10, r8 | 352 | tst r10, r8 |
356 | bf syscall_trace_entry | 353 | bf syscall_trace_entry |
357 | ! | 354 | ! |
@@ -389,8 +386,9 @@ syscall_exit: | |||
389 | #endif | 386 | #endif |
390 | 2: .long NR_syscalls | 387 | 2: .long NR_syscalls |
391 | 3: .long sys_call_table | 388 | 3: .long sys_call_table |
392 | 4: .long do_syscall_trace | ||
393 | #ifdef CONFIG_TRACE_IRQFLAGS | 389 | #ifdef CONFIG_TRACE_IRQFLAGS |
394 | 5: .long trace_hardirqs_on | 390 | 5: .long trace_hardirqs_on |
395 | 6: .long trace_hardirqs_off | 391 | 6: .long trace_hardirqs_off |
396 | #endif | 392 | #endif |
393 | 7: .long do_syscall_trace_enter | ||
394 | 8: .long do_syscall_trace_leave | ||