@@ -134,31 +134,32 @@ ENTRY(csky_systemcall)
134
134
#endif
135
135
psrset ee , ie
136
136
137
- lrw r11 , __NR_syscalls
138
- cmphs syscallid , r11 / * Check nr of syscall * /
137
+ lrw r9 , __NR_syscalls
138
+ cmphs syscallid , r9 / * Check nr of syscall * /
139
139
bt ret_from_exception
140
140
141
- lrw r13 , sys_call_table
142
- ixw r13 , syscallid
143
- ldw r11 , ( r13 )
144
- cmpnei r11 , 0
141
+ lrw r9 , sys_call_table
142
+ ixw r9 , syscallid
143
+ ldw syscallid , ( r9 )
144
+ cmpnei syscallid , 0
145
145
bf ret_from_exception
146
146
147
147
mov r9 , sp
148
148
bmaski r10 , THREAD_SHIFT
149
149
andn r9 , r10
150
- ldw r12 , ( r9 , TINFO_FLAGS)
151
- ANDI_R3 r12 , (_TIF_SYSCALL_TRACE | _TIF_SYSCALL_TRACEPOINT | _TIF_SYSCALL_AUDIT)
152
- cmpnei r12 , 0
150
+ ldw r10 , ( r9 , TINFO_FLAGS)
151
+ lrw r9 , _TIF_SYSCALL_WORK
152
+ and r10 , r9
153
+ cmpnei r10 , 0
153
154
bt csky_syscall_trace
154
155
#if defined(__CSKYABIV2__)
155
156
subi sp , 8
156
157
stw r5 , ( sp , 0x4 )
157
158
stw r4 , ( sp , 0x0 )
158
- jsr r11 / * Do system call * /
159
+ jsr syscallid / * Do system call * /
159
160
addi sp , 8
160
161
#else
161
- jsr r11
162
+ jsr syscallid
162
163
#endif
163
164
stw a0 , ( sp , LSAVE_A0) / * Save return value * /
164
165
jmpi ret_from_exception
@@ -177,13 +178,12 @@ csky_syscall_trace:
177
178
stw r9 , ( sp , 0x0 )
178
179
ldw r9 , ( sp , LSAVE_A5)
179
180
stw r9 , ( sp , 0x4 )
181
+ jsr syscallid / * Do system call * /
182
+ addi sp , 8
180
183
#else
181
184
ldw r6 , ( sp , LSAVE_A4)
182
185
ldw r7 , ( sp , LSAVE_A5)
183
- #endif
184
- jsr r11 / * Do system call * /
185
- #if defined(__CSKYABIV2__)
186
- addi sp , 8
186
+ jsr syscallid / * Do system call * /
187
187
#endif
188
188
stw a0 , ( sp , LSAVE_A0) / * Save return value * /
189
189
@@ -202,18 +202,20 @@ ENTRY(ret_from_fork)
202
202
mov r9 , sp
203
203
bmaski r10 , THREAD_SHIFT
204
204
andn r9 , r10
205
- ldw r12 , ( r9 , TINFO_FLAGS)
206
- ANDI_R3 r12 , (_TIF_SYSCALL_TRACE | _TIF_SYSCALL_TRACEPOINT | _TIF_SYSCALL_AUDIT)
207
- cmpnei r12 , 0
205
+ ldw r10 , ( r9 , TINFO_FLAGS)
206
+ lrw r9 , _TIF_SYSCALL_WORK
207
+ and r10 , r9
208
+ cmpnei r10 , 0
208
209
bf ret_from_exception
209
210
mov a0 , sp / * sp = pt_regs pointer * /
210
211
jbsr syscall_trace_exit
211
212
212
213
ret_from_exception:
213
214
psrclr ie
214
- ld syscallid , ( sp , LSAVE_PSR)
215
- btsti syscallid , 31
215
+ ld r9 , ( sp , LSAVE_PSR)
216
+ btsti r9 , 31
216
217
218
+ bt 1f
217
219
/ *
218
220
* Load address of current - >thread_info , Then get address of task_struct
219
221
* Get task_needreshed in task_struct
@@ -222,15 +224,19 @@ ret_from_exception:
222
224
bmaski r10 , THREAD_SHIFT
223
225
andn r9 , r10
224
226
225
- bt 1f
226
- ldw r12 , ( r9 , TINFO_FLAGS)
227
- andi r12 , (_TIF_SIGPENDING | _TIF_NOTIFY_RESUME | _TIF_NEED_RESCHED | _TIF_UPROBE)
228
- cmpnei r12 , 0
227
+ ldw r10 , ( r9 , TINFO_FLAGS)
228
+ lrw r9 , _TIF_WORK_MASK
229
+ and r10 , r9
230
+ cmpnei r10 , 0
229
231
bt exit_work
230
232
1 :
231
233
#ifdef CONFIG_PREEMPTION
232
- ldw r12 , ( r9 , TINFO_PREEMPT)
233
- cmpnei r12 , 0
234
+ mov r9 , sp
235
+ bmaski r10 , THREAD_SHIFT
236
+ andn r9 , r10
237
+
238
+ ldw r10 , ( r9 , TINFO_PREEMPT)
239
+ cmpnei r10 , 0
234
240
bt 2f
235
241
jbsr preempt_schedule_irq / * irq en/disable is done inside * /
236
242
2 :
@@ -246,15 +252,15 @@ ret_from_exception:
246
252
RESTORE_ALL
247
253
248
254
exit_work:
249
- lrw syscallid , ret_from_exception
250
- mov lr , syscallid
255
+ lrw r9 , ret_from_exception
256
+ mov lr , r9
251
257
252
- btsti r12 , TIF_NEED_RESCHED
258
+ btsti r10 , TIF_NEED_RESCHED
253
259
bt work_resched
254
260
255
261
psrset ie
256
262
mov a0 , sp
257
- mov a1 , r12
263
+ mov a1 , r10
258
264
jmpi do_notify_resume
259
265
260
266
work_resched:
0 commit comments