[PATCH] csky: Fixup libgcc unwind error

From: guoren
Date: Wed Jun 26 2019 - 01:52:27 EST


From: Guo Ren <ren_guo@xxxxxxxxx>

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@xxxxxxxxx>
Signed-off-by: Mao Han <han_mao@xxxxxxxxx>
Cc: Arnd Bergmann <arnd@xxxxxxxx>
---
arch/csky/kernel/signal.c | 5 +++++
1 file changed, 5 insertions(+)

diff --git a/arch/csky/kernel/signal.c b/arch/csky/kernel/signal.c
index 04a43cf..d47a338 100644
--- a/arch/csky/kernel/signal.c
+++ b/arch/csky/kernel/signal.c
@@ -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;
};
--
2.7.4