| From 0b51b6716d1cdae9fb6d5b116df8fc4c9ae1a789 Mon Sep 17 00:00:00 2001 |
| From: Guo Ren <guoren@linux.alibaba.com> |
| Date: Sun, 24 May 2020 10:44:38 +0000 |
| Subject: [PATCH] csky: Fixup abiv2 syscall_trace break a4 & a5 |
| |
| commit e0bbb53843b5fdfe464b099217e3b9d97e8a75d7 upstream. |
| |
| Current implementation could destory a4 & a5 when strace, so we need to get them |
| from pt_regs by SAVE_ALL. |
| |
| Signed-off-by: Guo Ren <guoren@linux.alibaba.com> |
| Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com> |
| |
| diff --git a/arch/csky/abiv2/inc/abi/entry.h b/arch/csky/abiv2/inc/abi/entry.h |
| index 9023828ede97..ac8f65a3e75a 100644 |
| --- a/arch/csky/abiv2/inc/abi/entry.h |
| +++ b/arch/csky/abiv2/inc/abi/entry.h |
| @@ -13,6 +13,8 @@ |
| #define LSAVE_A1 28 |
| #define LSAVE_A2 32 |
| #define LSAVE_A3 36 |
| +#define LSAVE_A4 40 |
| +#define LSAVE_A5 44 |
| |
| #define KSPTOUSP |
| #define USPTOKSP |
| diff --git a/arch/csky/kernel/entry.S b/arch/csky/kernel/entry.S |
| index bf87d3a2b78b..e18c2f02b6f3 100644 |
| --- a/arch/csky/kernel/entry.S |
| +++ b/arch/csky/kernel/entry.S |
| @@ -162,8 +162,10 @@ csky_syscall_trace: |
| ldw a3, (sp, LSAVE_A3) |
| #if defined(__CSKYABIV2__) |
| subi sp, 8 |
| - stw r5, (sp, 0x4) |
| - stw r4, (sp, 0x0) |
| + ldw r9, (sp, LSAVE_A4) |
| + stw r9, (sp, 0x0) |
| + ldw r9, (sp, LSAVE_A5) |
| + stw r9, (sp, 0x4) |
| #else |
| ldw r6, (sp, LSAVE_A4) |
| ldw r7, (sp, LSAVE_A5) |
| -- |
| 2.27.0 |
| |