Skip to content

Commit 0a4e27c

Browse files
committed
xtensa: use EXCEPTION_DUMP macro for fatal messages
instead of depending on logging for exceptions and fatal messages, use macro and dump exceptions if printk is enable with no logging. Signed-off-by: Anas Nashif <[email protected]>
1 parent 2b93450 commit 0a4e27c

File tree

1 file changed

+16
-16
lines changed

1 file changed

+16
-16
lines changed

arch/xtensa/core/vector_handlers.c

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -159,15 +159,15 @@ void xtensa_dump_stack(const void *stack)
159159
/* And high registers are always comes in 4 in a block. */
160160
reg_blks_remaining = (int)num_high_regs / 4;
161161

162-
LOG_ERR(" ** A0 %p SP %p A2 %p A3 %p",
162+
EXCEPTION_DUMP(" ** A0 %p SP %p A2 %p A3 %p",
163163
(void *)bsa->a0,
164164
(void *)((char *)bsa + sizeof(*bsa)),
165165
(void *)bsa->a2, (void *)bsa->a3);
166166

167167
if (reg_blks_remaining > 0) {
168168
reg_blks_remaining--;
169169

170-
LOG_ERR(" ** A4 %p A5 %p A6 %p A7 %p",
170+
EXCEPTION_DUMP(" ** A4 %p A5 %p A6 %p A7 %p",
171171
(void *)frame->blks[reg_blks_remaining].r0,
172172
(void *)frame->blks[reg_blks_remaining].r1,
173173
(void *)frame->blks[reg_blks_remaining].r2,
@@ -177,7 +177,7 @@ void xtensa_dump_stack(const void *stack)
177177
if (reg_blks_remaining > 0) {
178178
reg_blks_remaining--;
179179

180-
LOG_ERR(" ** A8 %p A9 %p A10 %p A11 %p",
180+
EXCEPTION_DUMP(" ** A8 %p A9 %p A10 %p A11 %p",
181181
(void *)frame->blks[reg_blks_remaining].r0,
182182
(void *)frame->blks[reg_blks_remaining].r1,
183183
(void *)frame->blks[reg_blks_remaining].r2,
@@ -187,24 +187,24 @@ void xtensa_dump_stack(const void *stack)
187187
if (reg_blks_remaining > 0) {
188188
reg_blks_remaining--;
189189

190-
LOG_ERR(" ** A12 %p A13 %p A14 %p A15 %p",
190+
EXCEPTION_DUMP(" ** A12 %p A13 %p A14 %p A15 %p",
191191
(void *)frame->blks[reg_blks_remaining].r0,
192192
(void *)frame->blks[reg_blks_remaining].r1,
193193
(void *)frame->blks[reg_blks_remaining].r2,
194194
(void *)frame->blks[reg_blks_remaining].r3);
195195
}
196196

197197
#if XCHAL_HAVE_LOOPS
198-
LOG_ERR(" ** LBEG %p LEND %p LCOUNT %p",
198+
EXCEPTION_DUMP(" ** LBEG %p LEND %p LCOUNT %p",
199199
(void *)bsa->lbeg,
200200
(void *)bsa->lend,
201201
(void *)bsa->lcount);
202202
#endif
203203

204-
LOG_ERR(" ** SAR %p", (void *)bsa->sar);
204+
EXCEPTION_DUMP(" ** SAR %p", (void *)bsa->sar);
205205

206206
#if XCHAL_HAVE_THREADPTR
207-
LOG_ERR(" ** THREADPTR %p", (void *)bsa->threadptr);
207+
EXCEPTION_DUMP(" ** THREADPTR %p", (void *)bsa->threadptr);
208208
#endif
209209
}
210210

@@ -227,12 +227,12 @@ static void print_fatal_exception(void *print_stack, int cause,
227227
__asm__ volatile("rsr.excvaddr %0" : "=r"(vaddr));
228228

229229
if (is_dblexc) {
230-
LOG_ERR(" ** FATAL EXCEPTION (DOUBLE)");
230+
EXCEPTION_DUMP(" ** FATAL EXCEPTION (DOUBLE)");
231231
} else {
232-
LOG_ERR(" ** FATAL EXCEPTION");
232+
EXCEPTION_DUMP(" ** FATAL EXCEPTION");
233233
}
234234

235-
LOG_ERR(" ** CPU %d EXCCAUSE %d (%s)",
235+
EXCEPTION_DUMP(" ** CPU %d EXCCAUSE %d (%s)",
236236
arch_curr_cpu()->id, cause,
237237
xtensa_exccause(cause));
238238

@@ -241,21 +241,21 @@ static void print_fatal_exception(void *print_stack, int cause,
241241
* Or worse, cause another access violation.
242242
*/
243243
if (xtensa_is_outside_stack_bounds((uintptr_t)bsa, sizeof(*bsa), UINT32_MAX)) {
244-
LOG_ERR(" ** VADDR %p Invalid SP %p", (void *)vaddr, print_stack);
244+
EXCEPTION_DUMP(" ** VADDR %p Invalid SP %p", (void *)vaddr, print_stack);
245245
return;
246246
}
247247

248248
ps = bsa->ps;
249249
pc = (void *)bsa->pc;
250250

251-
LOG_ERR(" ** PC %p VADDR %p", pc, (void *)vaddr);
251+
EXCEPTION_DUMP(" ** PC %p VADDR %p", pc, (void *)vaddr);
252252

253253
if (is_dblexc) {
254-
LOG_ERR(" ** DEPC %p", (void *)depc);
254+
EXCEPTION_DUMP(" ** DEPC %p", (void *)depc);
255255
}
256256

257-
LOG_ERR(" ** PS %p", (void *)bsa->ps);
258-
LOG_ERR(" ** (INTLEVEL:%d EXCM: %d UM:%d RING:%d WOE:%d OWB:%d CALLINC:%d)",
257+
EXCEPTION_DUMP(" ** PS %p", (void *)bsa->ps);
258+
EXCEPTION_DUMP(" ** (INTLEVEL:%d EXCM: %d UM:%d RING:%d WOE:%d OWB:%d CALLINC:%d)",
259259
get_bits(0, 4, ps), get_bits(4, 1, ps),
260260
get_bits(5, 1, ps), get_bits(6, 2, ps),
261261
get_bits(18, 1, ps),
@@ -473,7 +473,7 @@ void *xtensa_excint1_c(void *esf)
473473
*/
474474
case EXCCAUSE_SYSCALL:
475475
/* Just report it to the console for now */
476-
LOG_ERR(" ** SYSCALL PS %p PC %p",
476+
EXCEPTION_DUMP(" ** SYSCALL PS %p PC %p",
477477
(void *)bsa->ps, (void *)bsa->pc);
478478
xtensa_dump_stack(interrupted_stack);
479479

0 commit comments

Comments
 (0)