From 3d948c55f16ca41c0ac8478e6d5d22b5c8b5da29 Mon Sep 17 00:00:00 2001 From: Chris Metcalf Date: Thu, 28 Oct 2010 15:03:30 -0400 Subject: [PATCH] --- yaml --- r: 221575 b: refs/heads/master c: 34a89d26bdc4ba46a406fa3842239e921c493d44 h: refs/heads/master i: 221573: 303b45cf51d1770c6e54d544f9f0e123bf919012 221571: 2834ddf2020a7bcfca60323b7f0d5c1c9ea02b2e 221567: 372b9b0da3985b20d524335fa12b2c6e733f6a1a v: v3 --- [refs] | 2 +- trunk/arch/tile/kernel/signal.c | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index 200c46315791..160d7d0fcd37 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: d59e609d6568ba5ab23c256f412ac5ec360722c1 +refs/heads/master: 34a89d26bdc4ba46a406fa3842239e921c493d44 diff --git a/trunk/arch/tile/kernel/signal.c b/trunk/arch/tile/kernel/signal.c index fb28e85ae3ae..704ce0bce833 100644 --- a/trunk/arch/tile/kernel/signal.c +++ b/trunk/arch/tile/kernel/signal.c @@ -330,7 +330,7 @@ void do_signal(struct pt_regs *regs) current_thread_info()->status &= ~TS_RESTORE_SIGMASK; } - return; + goto done; } /* Did we come from a system call? */ @@ -358,4 +358,8 @@ void do_signal(struct pt_regs *regs) current_thread_info()->status &= ~TS_RESTORE_SIGMASK; sigprocmask(SIG_SETMASK, ¤t->saved_sigmask, NULL); } + +done: + /* Avoid double syscall restart if there are nested signals. */ + regs->faultnum = INT_SWINT_1_SIGRETURN; }