Merge branch 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/djbw/async_tx
[sfrench/cifs-2.6.git] / arch / h8300 / kernel / signal.c
index 02955604d7606f76eabf4ee6bd3b0478aad1c10c..cf3472f7389b9467bdb483ac883e81d4414a0532 100644 (file)
@@ -352,7 +352,7 @@ static void setup_frame (int sig, struct k_sigaction *ka,
                ret = (unsigned char *)(ka->sa.sa_restorer);
        else {
                /* sub.l er0,er0; mov.b #__NR_sigreturn,r0l; trapa #0 */
-               err != __put_user(0x1a80f800 + (__NR_sigreturn & 0xff),
+               err |= __put_user(0x1a80f800 + (__NR_sigreturn & 0xff),
                                  (unsigned long *)(frame->retcode + 0));
                err |= __put_user(0x5700, (unsigned short *)(frame->retcode + 4));
        }
@@ -428,7 +428,7 @@ static void setup_rt_frame (int sig, struct k_sigaction *ka, siginfo_t *info,
                ret = (unsigned char *)(ka->sa.sa_restorer);
        else {
                /* sub.l er0,er0; mov.b #__NR_sigreturn,r0l; trapa #0 */
-               err != __put_user(0x1a80f800 + (__NR_sigreturn & 0xff),
+               err |= __put_user(0x1a80f800 + (__NR_sigreturn & 0xff),
                                  (unsigned long *)(frame->retcode + 0));
                err |= __put_user(0x5700, (unsigned short *)(frame->retcode + 4));
        }
@@ -547,3 +547,9 @@ asmlinkage int do_signal(struct pt_regs *regs, sigset_t *oldset)
        }
        return 0;
 }
+
+asmlinkage void do_notify_resume(struct pt_regs *regs, u32 thread_info_flags)
+{
+       if (thread_info_flags & (_TIF_SIGPENDING | _TIF_RESTORE_SIGMASK))
+               do_signal(regs, NULL);
+}