• Vineet Gupta's avatar
    ARC: [Review] Prevent incorrect syscall restarts · 55bb9480
    Vineet Gupta authored
    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: default avatarVineet Gupta <vgupta@synopsys.com>
    Cc: Al Viro <viro@ZenIV.linux.org.uk>
    55bb9480
signal.c 9.74 KB