Loading arch/m68k/kernel/entry.S +1 −1 Original line number Diff line number Diff line Loading @@ -424,7 +424,7 @@ resume: .data ALIGN sys_call_table: .long sys_ni_syscall /* 0 - old "setup()" system call*/ .long sys_restart_syscall /* 0 - old "setup()" system call, used for restarting */ .long sys_exit .long sys_fork .long sys_read Loading arch/m68k/kernel/signal.c +15 −0 Original line number Diff line number Diff line Loading @@ -326,6 +326,9 @@ restore_sigcontext(struct pt_regs *regs, struct sigcontext __user *usc, void __u struct sigcontext context; int err; /* Always make any pending restarted system calls return -EINTR */ current_thread_info()->restart_block.fn = do_no_restart_syscall; /* get previous context */ if (copy_from_user(&context, usc, sizeof(context))) goto badframe; Loading Loading @@ -411,6 +414,9 @@ rt_restore_ucontext(struct pt_regs *regs, struct switch_stack *sw, unsigned long usp; int err; /* Always make any pending restarted system calls return -EINTR */ current_thread_info()->restart_block.fn = do_no_restart_syscall; err = __get_user(temp, &uc->uc_mcontext.version); if (temp != MCONTEXT_VERSION) goto badframe; Loading Loading @@ -937,6 +943,15 @@ handle_restart(struct pt_regs *regs, struct k_sigaction *ka, int has_handler) regs->d0 = -EINTR; break; case -ERESTART_RESTARTBLOCK: if (!has_handler) { regs->d0 = __NR_restart_syscall; regs->pc -= 2; break; } regs->d0 = -EINTR; break; case -ERESTARTSYS: if (has_handler && !(ka->sa.sa_flags & SA_RESTART)) { regs->d0 = -EINTR; Loading include/asm-m68k/unistd.h +1 −3 Original line number Diff line number Diff line Loading @@ -5,6 +5,7 @@ * This file contains the system call numbers. */ #define __NR_restart_syscall 0 #define __NR_exit 1 #define __NR_fork 2 #define __NR_read 3 Loading Loading @@ -359,9 +360,6 @@ #define __ARCH_WANT_SYS_SIGPROCMASK #define __ARCH_WANT_SYS_RT_SIGACTION /* whitelist for checksyscalls */ #define __IGNORE_restart_syscall /* * "Conditional" syscalls * Loading Loading
arch/m68k/kernel/entry.S +1 −1 Original line number Diff line number Diff line Loading @@ -424,7 +424,7 @@ resume: .data ALIGN sys_call_table: .long sys_ni_syscall /* 0 - old "setup()" system call*/ .long sys_restart_syscall /* 0 - old "setup()" system call, used for restarting */ .long sys_exit .long sys_fork .long sys_read Loading
arch/m68k/kernel/signal.c +15 −0 Original line number Diff line number Diff line Loading @@ -326,6 +326,9 @@ restore_sigcontext(struct pt_regs *regs, struct sigcontext __user *usc, void __u struct sigcontext context; int err; /* Always make any pending restarted system calls return -EINTR */ current_thread_info()->restart_block.fn = do_no_restart_syscall; /* get previous context */ if (copy_from_user(&context, usc, sizeof(context))) goto badframe; Loading Loading @@ -411,6 +414,9 @@ rt_restore_ucontext(struct pt_regs *regs, struct switch_stack *sw, unsigned long usp; int err; /* Always make any pending restarted system calls return -EINTR */ current_thread_info()->restart_block.fn = do_no_restart_syscall; err = __get_user(temp, &uc->uc_mcontext.version); if (temp != MCONTEXT_VERSION) goto badframe; Loading Loading @@ -937,6 +943,15 @@ handle_restart(struct pt_regs *regs, struct k_sigaction *ka, int has_handler) regs->d0 = -EINTR; break; case -ERESTART_RESTARTBLOCK: if (!has_handler) { regs->d0 = __NR_restart_syscall; regs->pc -= 2; break; } regs->d0 = -EINTR; break; case -ERESTARTSYS: if (has_handler && !(ka->sa.sa_flags & SA_RESTART)) { regs->d0 = -EINTR; Loading
include/asm-m68k/unistd.h +1 −3 Original line number Diff line number Diff line Loading @@ -5,6 +5,7 @@ * This file contains the system call numbers. */ #define __NR_restart_syscall 0 #define __NR_exit 1 #define __NR_fork 2 #define __NR_read 3 Loading Loading @@ -359,9 +360,6 @@ #define __ARCH_WANT_SYS_SIGPROCMASK #define __ARCH_WANT_SYS_RT_SIGACTION /* whitelist for checksyscalls */ #define __IGNORE_restart_syscall /* * "Conditional" syscalls * Loading