csky: Fixup libgcc unwind error
authorGuo Ren <ren_guo@c-sky.com>
Wed, 26 Jun 2019 03:27:03 +0000 (11:27 +0800)
committerGuo Ren <ren_guo@c-sky.com>
Wed, 26 Jun 2019 05:45:48 +0000 (13:45 +0800)
The struct rt_sigframe is also defined in libgcc/config/csky/linux-unwind.h
of gcc. Although there is no use for the first three word space, we must
keep them the same with linux-unwind.h for member position.

The BUG is found in glibc test with the tst-cancel02.
The BUG is from commit:bf2416829362 of linux-5.2-rc1 merge window.

Signed-off-by: Guo Ren <ren_guo@c-sky.com>
Signed-off-by: Mao Han <han_mao@c-sky.com>
Cc: Arnd Bergmann <arnd@arndb.de>
arch/csky/kernel/signal.c

index 04a43cfd4e09f3babe35685e3dcabcb1085aa6e2..d47a3381aad86f591ed21c2f2792b67504a912d4 100644 (file)
@@ -39,6 +39,11 @@ static int save_fpu_state(struct sigcontext __user *sc)
 #endif
 
 struct rt_sigframe {
+       /*
+        * pad[3] is compatible with the same struct defined in
+        * gcc/libgcc/config/csky/linux-unwind.h
+        */
+       int pad[3];
        struct siginfo info;
        struct ucontext uc;
 };