aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/tile/kernel/stack.c17
1 files changed, 8 insertions, 9 deletions
diff --git a/arch/tile/kernel/stack.c b/arch/tile/kernel/stack.c
index 402b9c85a894..22bbbd3ff4a3 100644
--- a/arch/tile/kernel/stack.c
+++ b/arch/tile/kernel/stack.c
@@ -78,8 +78,7 @@ static bool read_memory_func(void *result, unsigned long address,
78/* Return a pt_regs pointer for a valid fault handler frame */ 78/* Return a pt_regs pointer for a valid fault handler frame */
79static struct pt_regs *valid_fault_handler(struct KBacktraceIterator* kbt) 79static struct pt_regs *valid_fault_handler(struct KBacktraceIterator* kbt)
80{ 80{
81 const char *fault = NULL; /* happy compiler */ 81 char fault[64];
82 char fault_buf[64];
83 unsigned long sp = kbt->it.sp; 82 unsigned long sp = kbt->it.sp;
84 struct pt_regs *p; 83 struct pt_regs *p;
85 84
@@ -90,14 +89,14 @@ static struct pt_regs *valid_fault_handler(struct KBacktraceIterator* kbt)
90 if (!in_kernel_stack(kbt, sp + C_ABI_SAVE_AREA_SIZE + PTREGS_SIZE-1)) 89 if (!in_kernel_stack(kbt, sp + C_ABI_SAVE_AREA_SIZE + PTREGS_SIZE-1))
91 return NULL; 90 return NULL;
92 p = (struct pt_regs *)(sp + C_ABI_SAVE_AREA_SIZE); 91 p = (struct pt_regs *)(sp + C_ABI_SAVE_AREA_SIZE);
93 if (p->faultnum == INT_SWINT_1 || p->faultnum == INT_SWINT_1_SIGRETURN) 92 if (kbt->verbose) { /* else we aren't going to use it */
94 fault = "syscall"; 93 if (p->faultnum == INT_SWINT_1 ||
95 else { 94 p->faultnum == INT_SWINT_1_SIGRETURN)
96 if (kbt->verbose) { /* else we aren't going to use it */ 95 snprintf(fault, sizeof(fault),
97 snprintf(fault_buf, sizeof(fault_buf), 96 "syscall %ld", p->regs[TREG_SYSCALL_NR]);
97 else
98 snprintf(fault, sizeof(fault),
98 "interrupt %ld", p->faultnum); 99 "interrupt %ld", p->faultnum);
99 fault = fault_buf;
100 }
101 } 100 }
102 if (EX1_PL(p->ex1) == KERNEL_PL && 101 if (EX1_PL(p->ex1) == KERNEL_PL &&
103 __kernel_text_address(p->pc) && 102 __kernel_text_address(p->pc) &&