sparc64: Rearrange thread info to cheaply clear syscall noerror state.
authorAl Viro <viro@zeniv.linux.org.uk>
Thu, 4 Oct 2012 20:52:53 +0000 (13:52 -0700)
committerDavid S. Miller <davem@davemloft.net>
Thu, 4 Oct 2012 21:13:29 +0000 (14:13 -0700)
commit40138249c3b7a0762155216b963ec7fd4d09b5b4
treebe0a2441aa7f7b3245e6de70cc4a8055031742f8
parentecefbd94b834fa32559d854646d777c56749ef1c
sparc64: Rearrange thread info to cheaply clear syscall noerror state.

After fixing a couple of brainos, it even seems to work.  What's done here
is move of ->syscall_noerror right before FPDEPTH byte in ->flags and
using sth to [%g6 + TI_SYS_NOERROR] instead of stb to [%g6 + TI_FPDEPTH] in
both branches of etrap_save.  AFAICS, that ought to be solid.  Again,
deciding what to do with now unused delay slot of branch on ->syscall_noerror
and dealing with the order of tests in ret_from_sys is a separate question,
but at least that way we don't have to clean ->syscall_noerror in there at
all.  AFAICS, it ought to be a clear win - sth is not going to cost more than
stb on etrap_64.S side of things, and we are losing write on syscalls.S one.

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>
arch/sparc/include/asm/ptrace.h
arch/sparc/include/asm/thread_info_64.h
arch/sparc/kernel/etrap_64.S
arch/sparc/kernel/syscalls.S
arch/sparc/kernel/traps_64.c