diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2008-05-03 10:05:11 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2008-05-03 10:05:11 -0700 |
commit | bf640be423d60d954b9673527e106a461a129eb8 (patch) | |
tree | 654d168d6effc47d18528ef5770c6f6dea51d901 /arch/sparc64/kernel/signal32.c | |
parent | c36c804559d3a891a2e655ba8185b4fa7eaee156 (diff) | |
parent | 4a1236ac6ee3bb3a2f585e66871de3c39ab38f7c (diff) |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6:
sparc32: Delete prom_stdin and prom_stdout.
sparc32: More memory probing consolidation.
sparc32: Kill totally unused memory information tables.
sparc64: Fix syscall restart, for real...
serial: Fix sparc driver name strings.
sparc64: Stop creating dummy root PCI host controller devices.
Diffstat (limited to 'arch/sparc64/kernel/signal32.c')
-rw-r--r-- | arch/sparc64/kernel/signal32.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/arch/sparc64/kernel/signal32.c b/arch/sparc64/kernel/signal32.c index 91f8d0826db..9415d2c918c 100644 --- a/arch/sparc64/kernel/signal32.c +++ b/arch/sparc64/kernel/signal32.c @@ -268,6 +268,9 @@ void do_sigreturn32(struct pt_regs *regs) regs->tstate &= ~(TSTATE_ICC|TSTATE_XCC); regs->tstate |= psr_to_tstate_icc(psr); + /* Prevent syscall restart. */ + pt_regs_clear_trap_type(regs); + err |= __get_user(fpu_save, &sf->fpu_save); if (fpu_save) err |= restore_fpu_state32(regs, &sf->fpu_state); @@ -351,6 +354,9 @@ asmlinkage void do_rt_sigreturn32(struct pt_regs *regs) regs->tstate &= ~(TSTATE_ICC|TSTATE_XCC); regs->tstate |= psr_to_tstate_icc(psr); + /* Prevent syscall restart. */ + pt_regs_clear_trap_type(regs); + err |= __get_user(fpu_save, &sf->fpu_save); if (fpu_save) err |= restore_fpu_state32(regs, &sf->fpu_state); |