|
@@ -131,7 +131,7 @@ ENTRY(resume_userspace)
|
|
|
nop
|
|
|
#endif
|
|
|
mov.l @(TI_FLAGS,r8), r0 ! current_thread_info->flags
|
|
|
- tst #_TIF_WORK_MASK, r0
|
|
|
+ tst #(_TIF_WORK_MASK & 0xff), r0
|
|
|
bt/s __restore_all
|
|
|
tst #_TIF_NEED_RESCHED, r0
|
|
|
|
|
@@ -163,7 +163,7 @@ work_resched:
|
|
|
#endif
|
|
|
!
|
|
|
mov.l @(TI_FLAGS,r8), r0 ! current_thread_info->flags
|
|
|
- tst #_TIF_WORK_MASK, r0
|
|
|
+ tst #(_TIF_WORK_MASK & 0xff), r0
|
|
|
bt __restore_all
|
|
|
bra work_pending
|
|
|
tst #_TIF_NEED_RESCHED, r0
|
|
@@ -181,7 +181,7 @@ work_resched:
|
|
|
syscall_exit_work:
|
|
|
! r0: current_thread_info->flags
|
|
|
! r8: current_thread_info
|
|
|
- tst #_TIF_WORK_SYSCALL_MASK, r0
|
|
|
+ tst #(_TIF_WORK_SYSCALL_MASK & 0xff), r0
|
|
|
bt/s work_pending
|
|
|
tst #_TIF_NEED_RESCHED, r0
|
|
|
#ifdef CONFIG_TRACE_IRQFLAGS
|
|
@@ -331,8 +331,12 @@ ENTRY(system_call)
|
|
|
!
|
|
|
get_current_thread_info r8, r10
|
|
|
mov.l @(TI_FLAGS,r8), r8
|
|
|
- mov #_TIF_WORK_SYSCALL_MASK, r10
|
|
|
+ mov #(_TIF_WORK_SYSCALL_MASK & 0xff), r10
|
|
|
+ mov #(_TIF_WORK_SYSCALL_MASK >> 8), r9
|
|
|
tst r10, r8
|
|
|
+ shll8 r9
|
|
|
+ bf syscall_trace_entry
|
|
|
+ tst r9, r8
|
|
|
bf syscall_trace_entry
|
|
|
!
|
|
|
mov.l 2f, r8 ! Number of syscalls
|
|
@@ -359,7 +363,11 @@ syscall_exit:
|
|
|
!
|
|
|
get_current_thread_info r8, r0
|
|
|
mov.l @(TI_FLAGS,r8), r0 ! current_thread_info->flags
|
|
|
- tst #_TIF_ALLWORK_MASK, r0
|
|
|
+ tst #(_TIF_ALLWORK_MASK & 0xff), r0
|
|
|
+ mov #(_TIF_ALLWORK_MASK >> 8), r1
|
|
|
+ bf syscall_exit_work
|
|
|
+ shlr8 r0
|
|
|
+ tst r0, r1
|
|
|
bf syscall_exit_work
|
|
|
bra __restore_all
|
|
|
nop
|