linux-stable/arch/arc/kernel
Vineet Gupta 55bb9480f9 ARC: [Review] Prevent incorrect syscall restarts
Per Al Viro's "signals for dummies" https://lkml.org/lkml/2012/12/6/366
there are 3 golden rules for (not) restarting syscalls:

"	What we need to guarantee is
* restarts do not happen on signals caught in interrupts or exceptions
* restarts do not happen on signals caught in sigreturn()
* restart should happen only once, even if we get through do_signal()
  many times."

ARC Port already handled #1, this patch fixes #2 and #3.

We use the additional state in pt_regs->orig_r8 to ckh if restarting
has already been done once.

Thanks to Al Viro for spotting this.

Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
Cc: Al Viro <viro@ZenIV.linux.org.uk>
2013-02-15 23:15:50 +05:30
..
arcksyms.c ARC: Build system: Makefiles, Kconfig, Linker script 2013-02-11 20:00:25 +05:30
asm-offsets.c ARC: [Review] Preparing to fix incorrect syscall restarts due to signals 2013-02-15 23:15:49 +05:30
clk.c ARC: Timers/counters/delay management 2013-02-11 20:00:39 +05:30
ctx_sw.c ARC: Process-creation/scheduling/idle-loop 2013-02-11 20:00:38 +05:30
ctx_sw_asm.S ARC: Process-creation/scheduling/idle-loop 2013-02-11 20:00:38 +05:30
entry.S ARC: [Review] Preparing to fix incorrect syscall restarts due to signals 2013-02-15 23:15:49 +05:30
fpu.c ARC: Process-creation/scheduling/idle-loop 2013-02-11 20:00:38 +05:30
irq.c ARC: Interrupt Handling 2013-02-11 20:00:37 +05:30
Makefile ARC: Build system: Makefiles, Kconfig, Linker script 2013-02-11 20:00:25 +05:30
process.c ARC: Process-creation/scheduling/idle-loop 2013-02-11 20:00:38 +05:30
signal.c ARC: [Review] Prevent incorrect syscall restarts 2013-02-15 23:15:50 +05:30
sys.c ARC: Syscall support (no-legacy-syscall ABI) 2013-02-11 20:00:38 +05:30
time.c ARC: Timers/counters/delay management 2013-02-11 20:00:39 +05:30
traps.c ARC: Non-MMU Exception Handling 2013-02-11 20:00:37 +05:30
vmlinux.lds.S ARC: Build system: Makefiles, Kconfig, Linker script 2013-02-11 20:00:25 +05:30