signal.c (3c532798ec96b6c2d77706f04ed1d8b566a805df) | signal.c (d3876ff74437c5f3a1a2f8d2a45b6fb91d51ea25) |
---|---|
1/* 2 * linux/arch/m68k/kernel/signal.c 3 * 4 * Copyright (C) 1991, 1992 Linus Torvalds 5 * 6 * This file is subject to the terms and conditions of the GNU General Public 7 * License. See the file COPYING in the main directory of this archive 8 * for more details. --- 906 unchanged lines hidden (view full) --- 915 916 /* Set up to return from userspace. */ 917#ifdef CONFIG_MMU 918 err |= __put_user(frame->retcode, &frame->pretcode); 919 /* moveq #,d0; trap #0 */ 920 err |= __put_user(0x70004e40 + (__NR_sigreturn << 16), 921 (long __user *)(frame->retcode)); 922#else | 1/* 2 * linux/arch/m68k/kernel/signal.c 3 * 4 * Copyright (C) 1991, 1992 Linus Torvalds 5 * 6 * This file is subject to the terms and conditions of the GNU General Public 7 * License. See the file COPYING in the main directory of this archive 8 * for more details. --- 906 unchanged lines hidden (view full) --- 915 916 /* Set up to return from userspace. */ 917#ifdef CONFIG_MMU 918 err |= __put_user(frame->retcode, &frame->pretcode); 919 /* moveq #,d0; trap #0 */ 920 err |= __put_user(0x70004e40 + (__NR_sigreturn << 16), 921 (long __user *)(frame->retcode)); 922#else |
923 err |= __put_user((void *) ret_from_user_signal, &frame->pretcode); | 923 err |= __put_user((long) ret_from_user_signal, 924 (long __user *) &frame->pretcode); |
924#endif 925 926 if (err) 927 return -EFAULT; 928 929 push_cache ((unsigned long) &frame->retcode); 930 931 /* --- 67 unchanged lines hidden (view full) --- 999 (long __user *)(frame->retcode + 4)); 1000#else 1001 /* moveq #,d0; notb d0; trap #0 */ 1002 err |= __put_user(0x70004600 + ((__NR_rt_sigreturn ^ 0xff) << 16), 1003 (long __user *)(frame->retcode + 0)); 1004 err |= __put_user(0x4e40, (short __user *)(frame->retcode + 4)); 1005#endif 1006#else | 925#endif 926 927 if (err) 928 return -EFAULT; 929 930 push_cache ((unsigned long) &frame->retcode); 931 932 /* --- 67 unchanged lines hidden (view full) --- 1000 (long __user *)(frame->retcode + 4)); 1001#else 1002 /* moveq #,d0; notb d0; trap #0 */ 1003 err |= __put_user(0x70004600 + ((__NR_rt_sigreturn ^ 0xff) << 16), 1004 (long __user *)(frame->retcode + 0)); 1005 err |= __put_user(0x4e40, (short __user *)(frame->retcode + 4)); 1006#endif 1007#else |
1007 err |= __put_user((void *) ret_from_user_rt_signal, &frame->pretcode); | 1008 err |= __put_user((long) ret_from_user_rt_signal, 1009 (long __user *) &frame->pretcode); |
1008#endif /* CONFIG_MMU */ 1009 1010 if (err) 1011 return -EFAULT; 1012 1013 push_cache ((unsigned long) &frame->retcode); 1014 1015 /* --- 113 unchanged lines hidden (view full) --- 1129 restore_saved_sigmask(); 1130} 1131 1132void do_notify_resume(struct pt_regs *regs) 1133{ 1134 if (test_thread_flag(TIF_SIGPENDING)) 1135 do_signal(regs); 1136 | 1010#endif /* CONFIG_MMU */ 1011 1012 if (err) 1013 return -EFAULT; 1014 1015 push_cache ((unsigned long) &frame->retcode); 1016 1017 /* --- 113 unchanged lines hidden (view full) --- 1131 restore_saved_sigmask(); 1132} 1133 1134void do_notify_resume(struct pt_regs *regs) 1135{ 1136 if (test_thread_flag(TIF_SIGPENDING)) 1137 do_signal(regs); 1138 |
1137 if (test_thread_flag(TIF_NOTIFY_RESUME)) | 1139 if (test_and_clear_thread_flag(TIF_NOTIFY_RESUME)) |
1138 tracehook_notify_resume(regs); 1139} | 1140 tracehook_notify_resume(regs); 1141} |