From 285e39870f818c5160a06bdf753679e7cee2e507 Mon Sep 17 00:00:00 2001 From: Bahadir Balban Date: Fri, 14 Mar 2008 15:35:41 +0000 Subject: [PATCH] Added #ifdef flags for enable/disabling data abort messages from c0 --- src/arch/arm/exception.c | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/src/arch/arm/exception.c b/src/arch/arm/exception.c index d3a4c4e..76db52e 100644 --- a/src/arch/arm/exception.c +++ b/src/arch/arm/exception.c @@ -16,6 +16,14 @@ #include INC_GLUE(message.h) #include INC_SUBARCH(mm.h) +/* Abort debugging conditions */ +#define DEBUG_ABORTS +#if defined (DEBUG_ABORTS) +#define dbg_abort(...) dprintk(__VA_ARGS__) +#else +#define dbg_abort(...) +#endif + /* Send data fault ipc to the faulty task's pager */ void fault_ipc_to_pager(u32 faulty_pc, u32 fsr, u32 far) { @@ -88,22 +96,22 @@ int check_aborts(u32 faulted_pc, u32 fsr, u32 far) int ret = 0; if (is_prefetch_abort(fsr)) { -// dprintk("Prefetch abort @ ", faulted_pc); + dprintk("Prefetch abort @ ", faulted_pc); return 0; } switch (fsr & ARM_FSR_MASK) { /* Aborts that are expected on page faults: */ case DABT_PERM_PAGE: -// dprintk("Page permission fault @ ", far); + dbg_abort("Page permission fault @ ", far); ret = 0; break; case DABT_XLATE_PAGE: -// dprintk("Page translation fault @ ", far); + dbg_abort("Page translation fault @ ", far); ret = 0; break; case DABT_XLATE_SECT: -// dprintk("Section translation fault @ ", far); + dbg_abort("Section translation fault @ ", far); ret = 0; break; @@ -172,7 +180,7 @@ int check_aborts(u32 faulted_pc, u32 fsr, u32 far) void data_abort_handler(u32 faulted_pc, u32 fsr, u32 far) { set_abort_type(fsr, ARM_DABT); -// dprintk("Data abort @ PC: ", faulted_pc); + dbg_abort("Data abort @ PC: ", faulted_pc); if (check_aborts(faulted_pc, fsr, far) < 0) { printascii("This abort can't be handled by any pager.\n"); goto error;