ppc: Fix signal delivery in ppc-user and ppc64-user
authorBenjamin Herrenschmidt <benh@kernel.crashing.org>
Wed, 3 Aug 2016 12:38:51 +0000 (22:38 +1000)
committerDavid Gibson <david@gibson.dropbear.id.au>
Fri, 23 Sep 2016 00:29:40 +0000 (10:29 +1000)
commit95cda4c44ee2ae8616b2f9d8a2d68882cf437859
treeec6ab3158b21ede4c1f43cbe398c17640d42e2c2
parentab04543602b7fa8fbc33401c66f071ae4570da04
ppc: Fix signal delivery in ppc-user and ppc64-user

There were a number of bugs in the implementation:

 - The structure alignment was wrong for 64-bit.

 - Also 64-bit only does RT signals.

 - On 64-bit, we need to put a pointer to the (aligned) vector registers
   in the frame and use it for restoring

 - We had endian bugs when saving/restoring vector registers

 - My recent fixes for exception NIP broke sigreturn in user mode
   causing us to resume one instruction too far.

 - Add VSR second halves

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
linux-user/main.c
linux-user/ppc/syscall_nr.h
linux-user/signal.c