|
@@ -676,10 +676,7 @@ ret_fast_syscall_trace:
|
|
work_pending:
|
|
work_pending:
|
|
tbnz x1, #TIF_NEED_RESCHED, work_resched
|
|
tbnz x1, #TIF_NEED_RESCHED, work_resched
|
|
/* TIF_SIGPENDING, TIF_NOTIFY_RESUME or TIF_FOREIGN_FPSTATE case */
|
|
/* TIF_SIGPENDING, TIF_NOTIFY_RESUME or TIF_FOREIGN_FPSTATE case */
|
|
- ldr x2, [sp, #S_PSTATE]
|
|
|
|
mov x0, sp // 'regs'
|
|
mov x0, sp // 'regs'
|
|
- tst x2, #PSR_MODE_MASK // user mode regs?
|
|
|
|
- b.ne no_work_pending // returning to kernel
|
|
|
|
enable_irq // enable interrupts for do_notify_resume()
|
|
enable_irq // enable interrupts for do_notify_resume()
|
|
bl do_notify_resume
|
|
bl do_notify_resume
|
|
b ret_to_user
|
|
b ret_to_user
|
|
@@ -698,7 +695,6 @@ ret_to_user:
|
|
and x2, x1, #_TIF_WORK_MASK
|
|
and x2, x1, #_TIF_WORK_MASK
|
|
cbnz x2, work_pending
|
|
cbnz x2, work_pending
|
|
enable_step_tsk x1, x2
|
|
enable_step_tsk x1, x2
|
|
-no_work_pending:
|
|
|
|
kernel_exit 0
|
|
kernel_exit 0
|
|
ENDPROC(ret_to_user)
|
|
ENDPROC(ret_to_user)
|
|
|
|
|