On Sat, Feb 21, 2015 at 04:53:47PM +0900, Yoshinori Sato wrote:

> +resume_userspace:
> +     andc    #0xbf,ccr
> +     mov.l   sp,er4
> +     and.w   #0xe000,r4              /* er4 <- current thread info */
> +     mov.l   @(TI_FLAGS:16,er4),er1
> +     and.l   #_TIF_WORK_MASK,er1
> +     beq     restore_all:8
> +work_pending:
> +     btst    #TIF_NEED_RESCHED,r1l
> +     bne     work_resched:8
> +     /* work notifysig */
> +     mov.l   sp,er0
> +     subs    #4,er0                  /* er0: pt_regs */
> +     jsr     @do_notify_resume
> +     bra     restore_all:8

This is wrong.  You really need to handle multiple signals; it ought to
reload er1 and recheck it (or just branch to resume_userspace instead)
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to