Skip to contentSkip to conversation

Remove the deprecated ABI implementation

PATCH In review Zong Li 2 participants 4 messages Aug 20, 2018 – Aug 21, 2018

lore
Share & tools
lore

Zong Li

author
#0 lore raw

cover Remove the deprecated ABI implementation

This patches remove the implementation of NDS32_ABI_2 and replace the magic number of offset of lp on stack.

In stacktrace.c, we dump the stack without considering the old ABI, it should be consistent in traps.c.

Zong Li (2):
nds32: Remove the deprecated ABI implementation
nds32: Add macro definition for offset of lp register on stack

 arch/nds32/include/asm/nds32.h | 1 +
 arch/nds32/kernel/stacktrace.c | 2 +-
 arch/nds32/kernel/traps.c      | 7 +------
 3 files changed, 3 insertions(+), 7 deletions(-)
Signature · 1 line
2.7.4
author
#1 lore raw

PATCH 1/2 nds32: Remove the deprecated ABI implementation

We are not using NDS32 ABI 2 for now, just remove the preprocessor directives __NDS32_ABI_2.

---
 arch/nds32/kernel/traps.c | 5 -----
 1 file changed, 5 deletions(-)
arch/nds32/kernel/traps.c +0 -5
index 7684c8f..f432310 100644
@@ -117,13 +117,8 @@ static void __dump(struct task_struct *tsk, unsigned long *base_reg)
 		       !((unsigned long)base_reg & 0x3) &&
 		       ((unsigned long)base_reg >= TASK_SIZE)) {
 			unsigned long next_fp;
-#if !defined(__NDS32_ABI_2)
-			ret_addr = base_reg[0];
-			next_fp = base_reg[1];
-#else
 			ret_addr = base_reg[-1];
 			next_fp = base_reg[FP_OFFSET];
-#endif
 			if (__kernel_text_address(ret_addr)) {
 
 				ret_addr = ftrace_graph_ret_addr(
Signature · 1 line
2.7.4
author
#2 lore raw

PATCH 2/2 nds32: Add macro definition for offset of lp register on stack

In reply to Zong Li

Use macro to replace the magic number.

---
 arch/nds32/include/asm/nds32.h | 1 +
 arch/nds32/kernel/stacktrace.c | 2 +-
 arch/nds32/kernel/traps.c      | 2 +-
 3 files changed, 3 insertions(+), 2 deletions(-)
arch/nds32/include/asm/nds32.h +1 -0
index 19b1939..68c3815 100644
@@ -17,6 +17,7 @@
 #else
 #define FP_OFFSET (-2)
 #endif
+#define LP_OFFSET (-1)
 
 extern void __init early_trap_init(void);
 static inline void GIE_ENABLE(void)
arch/nds32/kernel/stacktrace.c +1 -1
index 36bc870..d974c0c 100644
@@ -31,7 +31,7 @@ void save_stack_trace_tsk(struct task_struct *tsk, struct stack_trace *trace)
 	       && (fpn >= (unsigned long *)TASK_SIZE)) {
 		unsigned long lpp, fpp;
 
-		lpp = fpn[-1];
+		lpp = fpn[LP_OFFSET];
 		fpp = fpn[FP_OFFSET];
 		if (!__kernel_text_address(lpp))
 			break;
arch/nds32/kernel/traps.c +1 -1
index f432310..b0b85b7 100644
@@ -117,7 +117,7 @@ static void __dump(struct task_struct *tsk, unsigned long *base_reg)
 		       !((unsigned long)base_reg & 0x3) &&
 		       ((unsigned long)base_reg >= TASK_SIZE)) {
 			unsigned long next_fp;
-			ret_addr = base_reg[-1];
+			ret_addr = base_reg[LP_OFFSET];
 			next_fp = base_reg[FP_OFFSET];
 			if (__kernel_text_address(ret_addr)) {
 
Signature · 1 line
2.7.4
Acked-by on the v1 series
#3 lore raw
In reply to Zong Li

Zong Li <[email protected]> 於 2018年8月20日 週一 上午10:15寫道:

Quoted 7 lines

This patches remove the implementation of NDS32_ABI_2 and replace the magic number of offset of lp on stack.

In stacktrace.c, we dump the stack without considering the old ABI, it should be consistent in traps.c.

Quoted 8 lines

Zong Li (2):
nds32: Remove the deprecated ABI implementation
nds32: Add macro definition for offset of lp register on stack

 arch/nds32/include/asm/nds32.h | 1 +
 arch/nds32/kernel/stacktrace.c | 2 +-
 arch/nds32/kernel/traps.c      | 7 +------
 3 files changed, 3 insertions(+), 7 deletions(-)