diff options
author | Vineet Gupta | 2013-01-18 10:42:19 +0100 |
---|---|---|
committer | Vineet Gupta | 2013-02-15 18:45:50 +0100 |
commit | 55bb9480f9159b229ac3c3454c97b62d1e0a7e80 (patch) | |
tree | 4de8a97445bb41f250cdadba78169d0463bd244b /arch/arc/mm | |
parent | ARC: [Review] Preparing to fix incorrect syscall restarts due to signals (diff) | |
download | kernel-qcow2-linux-55bb9480f9159b229ac3c3454c97b62d1e0a7e80.tar.gz kernel-qcow2-linux-55bb9480f9159b229ac3c3454c97b62d1e0a7e80.tar.xz kernel-qcow2-linux-55bb9480f9159b229ac3c3454c97b62d1e0a7e80.zip |
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>
Diffstat (limited to 'arch/arc/mm')
0 files changed, 0 insertions, 0 deletions