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
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
irix5sys.S
irixelf.c [PATCH] FDPIC: Move roundup() into linux/kernel.h 2006-07-10 13:24:22 -07:00
irixinv.c
irixioctl.c
irixsig.c [MIPS] Avoid double signal restarting. 2006-09-27 13:37:33 +01:00
irq_cpu.c [MIPS] Eleminate interrupt migration helper use. 2006-07-13 21:25:58 +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
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_ksyms.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
mips-mt.c [MIPS] MIPS MT: Fix build error. 2006-07-13 21:26:06 +01: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
ptrace32.c [MIPS] Unify mips_fpu_soft_struct and mips_fpu_hard_structs. 2006-06-19 17:39:18 +01:00
ptrace.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02: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
r2300_switch.S Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
r6000_fpu.S
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
setup.c [PATCH] tty: Remove include of screen_info.h from tty.h 2006-07-10 13:24:16 -07: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
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
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