@@ -288,22 +288,21 @@ setup_rt_frame(struct ksignal *ksig, sigset_t *set, struct pt_regs *regs,
288288 already in userspace. The first words of tramp are used to
289289 save the previous sigrestartblock trampoline that might be
290290 on the stack. We start the sigreturn trampoline at
291- SIGRESTARTBLOCK_TRAMP+X . */
291+ SIGRESTARTBLOCK_TRAMP. */
292292 err |= __put_user (in_syscall ? INSN_LDI_R25_1 : INSN_LDI_R25_0 ,
293293 & frame -> tramp [SIGRESTARTBLOCK_TRAMP + 0 ]);
294- err |= __put_user (INSN_LDI_R20 ,
295- & frame -> tramp [SIGRESTARTBLOCK_TRAMP + 1 ]);
296294 err |= __put_user (INSN_BLE_SR2_R0 ,
295+ & frame -> tramp [SIGRESTARTBLOCK_TRAMP + 1 ]);
296+ err |= __put_user (INSN_LDI_R20 ,
297297 & frame -> tramp [SIGRESTARTBLOCK_TRAMP + 2 ]);
298- err |= __put_user (INSN_NOP , & frame -> tramp [SIGRESTARTBLOCK_TRAMP + 3 ]);
299298
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 ];
302301 flush_user_dcache_range_asm (start , end );
303302 flush_user_icache_range_asm (start , end );
304303
305304 /* 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
307306 * So the SIGRETURN_TRAMP is at the end of SIGRESTARTBLOCK_TRAMP
308307 */
309308 rp = (unsigned long ) & frame -> tramp [SIGRESTARTBLOCK_TRAMP ];
0 commit comments