aboutsummaryrefslogtreecommitdiffstats
path: root/arch/tile/kernel/intvec_64.S
diff options
context:
space:
mode:
Diffstat (limited to 'arch/tile/kernel/intvec_64.S')
-rw-r--r--arch/tile/kernel/intvec_64.S24
1 files changed, 18 insertions, 6 deletions
diff --git a/arch/tile/kernel/intvec_64.S b/arch/tile/kernel/intvec_64.S
index 4ea080902654..85d483957027 100644
--- a/arch/tile/kernel/intvec_64.S
+++ b/arch/tile/kernel/intvec_64.S
@@ -1000,13 +1000,19 @@ handle_syscall:
1000 1000
1001 /* Trace syscalls, if requested. */ 1001 /* Trace syscalls, if requested. */
1002 addi r31, r31, THREAD_INFO_FLAGS_OFFSET 1002 addi r31, r31, THREAD_INFO_FLAGS_OFFSET
1003 ld r30, r31 1003 {
1004 andi r30, r30, _TIF_SYSCALL_TRACE 1004 ld r30, r31
1005 moveli r32, _TIF_SYSCALL_ENTRY_WORK
1006 }
1007 and r30, r30, r32
1005 { 1008 {
1006 addi r30, r31, THREAD_INFO_STATUS_OFFSET - THREAD_INFO_FLAGS_OFFSET 1009 addi r30, r31, THREAD_INFO_STATUS_OFFSET - THREAD_INFO_FLAGS_OFFSET
1007 beqzt r30, .Lrestore_syscall_regs 1010 beqzt r30, .Lrestore_syscall_regs
1008 } 1011 }
1009 jal do_syscall_trace 1012 {
1013 PTREGS_PTR(r0, PTREGS_OFFSET_BASE)
1014 jal do_syscall_trace_enter
1015 }
1010 FEEDBACK_REENTER(handle_syscall) 1016 FEEDBACK_REENTER(handle_syscall)
1011 1017
1012 /* 1018 /*
@@ -1071,13 +1077,19 @@ handle_syscall:
1071 FEEDBACK_REENTER(handle_syscall) 1077 FEEDBACK_REENTER(handle_syscall)
1072 1078
1073 /* Do syscall trace again, if requested. */ 1079 /* Do syscall trace again, if requested. */
1074 ld r30, r31 1080 {
1075 andi r0, r30, _TIF_SYSCALL_TRACE 1081 ld r30, r31
1082 moveli r32, _TIF_SYSCALL_EXIT_WORK
1083 }
1084 and r0, r30, r32
1076 { 1085 {
1077 andi r0, r30, _TIF_SINGLESTEP 1086 andi r0, r30, _TIF_SINGLESTEP
1078 beqzt r0, 1f 1087 beqzt r0, 1f
1079 } 1088 }
1080 jal do_syscall_trace 1089 {
1090 PTREGS_PTR(r0, PTREGS_OFFSET_BASE)
1091 jal do_syscall_trace_exit
1092 }
1081 FEEDBACK_REENTER(handle_syscall) 1093 FEEDBACK_REENTER(handle_syscall)
1082 andi r0, r30, _TIF_SINGLESTEP 1094 andi r0, r30, _TIF_SINGLESTEP
1083 1095