From: 黄涛 Date: Sat, 30 Jul 2011 15:09:53 +0000 (+0800) Subject: Revert "[ARM] Add code to prevent system calls from being restarted muliple times... X-Git-Tag: firefly_0821_release~9840 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=6c7d3683e64f591cfe22e252f5fa24d497a4b8ae;p=firefly-linux-kernel-4.4.55.git Revert "[ARM] Add code to prevent system calls from being restarted muliple times before returning from the kernel." This reverts commit 85d747b476df558eb36fd9966125a08f02ab5d12. --- diff --git a/arch/arm/kernel/signal.c b/arch/arm/kernel/signal.c index 29a905bf747d..e7714f367eb8 100644 --- a/arch/arm/kernel/signal.c +++ b/arch/arm/kernel/signal.c @@ -517,14 +517,6 @@ setup_rt_frame(int usig, struct k_sigaction *ka, siginfo_t *info, static inline void setup_syscall_restart(struct pt_regs *regs) { - if (regs->ARM_ORIG_r0 == -ERESTARTNOHAND || - regs->ARM_ORIG_r0 == -ERESTARTSYS || - regs->ARM_ORIG_r0 == -ERESTARTNOINTR || - regs->ARM_ORIG_r0 == -ERESTART_RESTARTBLOCK) { - /* the syscall cannot be safely restarted, return -EINTR instead */ - regs->ARM_r0 = -EINTR; - return; - } regs->ARM_r0 = regs->ARM_ORIG_r0; regs->ARM_pc -= thumb_mode(regs) ? 2 : 4; } @@ -657,7 +649,6 @@ static void do_signal(struct pt_regs *regs, int syscall) */ if (syscall) { if (regs->ARM_r0 == -ERESTART_RESTARTBLOCK) { - regs->ARM_r0 = -EAGAIN; /* prevent multiple restarts */ if (thumb_mode(regs)) { regs->ARM_r7 = __NR_restart_syscall - __NR_SYSCALL_BASE; regs->ARM_pc -= 2;