linux/arch/mips/kernel
Ralf Baechle 13fdd31abe [MIPS] Avoid double signal restarting.
In entry.S resume_userspace ... jal do_notify_resume form a loop through
which the kernel will iterate as long as work is pending.  If we
iterate through this loop more than once with no signal pending for at
least one but the last iteration we will take do the syscall restarting
multiple times resulting in a syscall return prior to the the syscall
instruction in userspace.  This may happen when debugging a multithreaded
program.

Debugging and original fix by Maciej; extended to other ABIs by me.

Signed-off-by: Maciej W. Rozycki <macro@mips.com>
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
2006-09-27 13:37:33 +01:00
..
apm.c [MIPS] Don't include obsolete <linux/config.h>. 2006-07-13 21:25:58 +01:00
asm-offsets.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
binfmt_elfn32.c [MIPS] jiffies_to_compat_timeval fix 2006-02-21 16:58:23 +00:00
binfmt_elfo32.c [MIPS] jiffies_to_compat_timeval fix 2006-02-21 16:58:23 +00:00
branch.c [MIPS] Unify mips_fpu_soft_struct and mips_fpu_hard_structs. 2006-06-19 17:39:18 +01:00
cpu-bugs64.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
cpu-probe.c [MIPS] Save 2k text size in cpu-probe 2006-07-13 21:26:01 +01:00
dma-no-isa.c Dummy ISA DMA functions for systems that don't have ISA but share 2005-10-29 19:30:17 +01:00
entry.S [MIPS] TRACE_IRQFLAGS_SUPPORT support. 2006-07-13 21:26:09 +01:00
gdb-low.S [MIPS] TRACE_IRQFLAGS_SUPPORT support. 2006-07-13 21:26:09 +01:00
gdb-stub.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
genex.S [MIPS] TRACE_IRQFLAGS_SUPPORT support. 2006-07-13 21:26:09 +01:00
head.S [MIPS] TRACE_IRQFLAGS_SUPPORT support. 2006-07-13 21:26:09 +01:00
i8253.c Input: pcspkr - separate device and driver registration 2006-03-14 00:11:50 -05:00
i8259.c [MIPS] Eleminate interrupt migration helper use. 2006-07-13 21:25:58 +01:00
init_task.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
irix5sys.S Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
irixelf.c [PATCH] FDPIC: Move roundup() into linux/kernel.h 2006-07-10 13:24:22 -07:00
irixinv.c Sparseify MIPS. 2005-10-29 19:30:50 +01:00
irixioctl.c Reformatting, remove debugging code. 2005-10-29 19:30:57 +01:00
irixsig.c [MIPS] Avoid double signal restarting. 2006-09-27 13:37:33 +01:00
irq-msc01.c [MIPS] Eleminate interrupt migration helper use. 2006-07-13 21:25:58 +01:00
irq-mv6434x.c [MIPS] Eleminate interrupt migration helper use. 2006-07-13 21:25:58 +01:00
irq-rm7000.c [MIPS] Eleminate interrupt migration helper use. 2006-07-13 21:25:58 +01:00
irq-rm9000.c [MIPS] Eleminate interrupt migration helper use. 2006-07-13 21:25:58 +01:00
irq.c [MIPS] Eleminate interrupt migration helper use. 2006-07-13 21:25:58 +01:00
irq_cpu.c [MIPS] Eleminate interrupt migration helper use. 2006-07-13 21:25:58 +01:00
kspd.c [MIPS] kpsd and other AP/SP improvements. 2006-04-19 04:14:27 +02:00
linux32.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
Makefile [MIPS] APM emu support 2006-06-19 17:39:22 +01:00
mips-mt.c [MIPS] MIPS MT: Fix build error. 2006-07-13 21:26:06 +01:00
mips_ksyms.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
module.c [MIPS] Ignore unresolved weak symbols in modules. 2006-06-06 00:15:10 +01:00
proc.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
process.c [MIPS] Improve unwind_stack() 2006-09-27 13:37:29 +01:00
ptrace.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
ptrace32.c [MIPS] Unify mips_fpu_soft_struct and mips_fpu_hard_structs. 2006-06-19 17:39:18 +01:00
r4k_fpu.S Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
r4k_switch.S Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
r2300_fpu.S kbuild: mips use generic asm-offsets.h support 2005-09-09 22:32:31 +02:00
r2300_switch.S Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
r6000_fpu.S kbuild: mips use generic asm-offsets.h support 2005-09-09 22:32:31 +02:00
reset.c [MIPS] Rename _machine_power_off to pm_power_off so the kernel builds again. 2006-02-07 13:30:22 +00:00
rtlx.c [PATCH] irq-flags: MIPS: Use the new IRQF_ constants 2006-07-02 13:58:47 -07:00
scall32-o32.S [MIPS] TRACE_IRQFLAGS_SUPPORT support. 2006-07-13 21:26:09 +01:00
scall64-64.S [MIPS] TRACE_IRQFLAGS_SUPPORT support. 2006-07-13 21:26:09 +01:00
scall64-n32.S [MIPS] N32 rt_sigqueueinfo uses O32 padding, not N64 2006-09-27 13:37:22 +01:00
scall64-o32.S [MIPS] TRACE_IRQFLAGS_SUPPORT support. 2006-07-13 21:26:09 +01:00
semaphore.c Always use ".set mips3" rather than select between "mips2" or "mips3" 2005-10-29 19:31:31 +01:00
setup.c [PATCH] tty: Remove include of screen_info.h from tty.h 2006-07-10 13:24:16 -07:00
signal-common.h Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
signal.c [MIPS] Avoid double signal restarting. 2006-09-27 13:37:33 +01:00
signal32.c [MIPS] Avoid double signal restarting. 2006-09-27 13:37:33 +01:00
signal_n32.c [MIPS] fix wrong __user usage in _sysn32_rt_sigsuspend 2006-03-21 13:27:46 +00:00
smp-mt.c [MIPS] MT: Initialise all writable bits in Cause register to zero. 2006-09-27 13:37:33 +01:00
smp.c [MIPS] Avoid interprocessor function calls. 2006-07-13 21:25:56 +01:00
smtc-asm.S [MIPS] TRACE_IRQFLAGS_SUPPORT support. 2006-07-13 21:26:09 +01:00
smtc-proc.c [MIPS] MT: Improved multithreading support. 2006-04-19 04:14:28 +02:00
smtc.c [MIPS] Replace board_timer_setup function pointer by plat_timer_setup. 2006-07-13 21:26:17 +01:00
syscall.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
sysirix.c [PATCH] kernel/sys.c: cleanups 2006-06-25 10:01:06 -07:00
time.c [MIPS] Replace board_timer_setup function pointer by plat_timer_setup. 2006-07-13 21:26:17 +01:00
traps.c [MIPS] Improve unwind_stack() 2006-09-27 13:37:29 +01:00
unaligned.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
vmlinux.lds.S Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
vpe.c [MIPS] Don't include obsolete <linux/config.h>. 2006-07-13 21:25:58 +01:00