@@ -288,22 +288,21 @@ setup_rt_frame(struct ksignal *ksig, sigset_t *set, struct pt_regs *regs,
288
288
already in userspace. The first words of tramp are used to
289
289
save the previous sigrestartblock trampoline that might be
290
290
on the stack. We start the sigreturn trampoline at
291
- SIGRESTARTBLOCK_TRAMP+X . */
291
+ SIGRESTARTBLOCK_TRAMP. */
292
292
err |= __put_user (in_syscall ? INSN_LDI_R25_1 : INSN_LDI_R25_0 ,
293
293
& frame -> tramp [SIGRESTARTBLOCK_TRAMP + 0 ]);
294
- err |= __put_user (INSN_LDI_R20 ,
295
- & frame -> tramp [SIGRESTARTBLOCK_TRAMP + 1 ]);
296
294
err |= __put_user (INSN_BLE_SR2_R0 ,
295
+ & frame -> tramp [SIGRESTARTBLOCK_TRAMP + 1 ]);
296
+ err |= __put_user (INSN_LDI_R20 ,
297
297
& frame -> tramp [SIGRESTARTBLOCK_TRAMP + 2 ]);
298
- err |= __put_user (INSN_NOP , & frame -> tramp [SIGRESTARTBLOCK_TRAMP + 3 ]);
299
298
300
- start = (unsigned long ) & frame -> tramp [0 ];
301
- end = (unsigned long ) & frame -> tramp [TRAMP_SIZE ];
299
+ start = (unsigned long ) & frame -> tramp [SIGRESTARTBLOCK_TRAMP + 0 ];
300
+ end = (unsigned long ) & frame -> tramp [SIGRESTARTBLOCK_TRAMP + 3 ];
302
301
flush_user_dcache_range_asm (start , end );
303
302
flush_user_icache_range_asm (start , end );
304
303
305
304
/* TRAMP Words 0-4, Length 5 = SIGRESTARTBLOCK_TRAMP
306
- * TRAMP Words 5-9 , Length 4 = SIGRETURN_TRAMP
305
+ * TRAMP Words 5-7 , Length 3 = SIGRETURN_TRAMP
307
306
* So the SIGRETURN_TRAMP is at the end of SIGRESTARTBLOCK_TRAMP
308
307
*/
309
308
rp = (unsigned long ) & frame -> tramp [SIGRESTARTBLOCK_TRAMP ];
0 commit comments