diff options
author | Steven J. Magnani <steve@digidescorp.com> | 2010-04-27 17:37:54 (GMT) |
---|---|---|
committer | Michal Simek <monstr@monstr.eu> | 2010-08-04 08:22:35 (GMT) |
commit | ce3266c047389443d5f433d605c769e878cbe46e (patch) | |
tree | e638a255d5d0f1b000a81b512dc605b92d0b8701 /arch/microblaze/kernel/hw_exception_handler.S | |
parent | ba9c4f88d747836bf35c3eee36aa18d2e164f493 (diff) | |
download | linux-fsl-qoriq-ce3266c047389443d5f433d605c769e878cbe46e.tar.xz |
microblaze: Add stack unwinder
Implement intelligent backtracing by searching for stack frame creation,
and emitting only return addresses. Use print_hex_dump() to display the
entire binary kernel stack.
Limitation: MMU kernels are not currently able to trace beyond a system trap
(interrupt, syscall, etc.). It is the intent of this patch to provide
infrastructure that can be extended to add this capability later.
Changes from V1:
* Removed checks in find_frame_creation() that prevented location of the frame
creation instruction in heavily optimized code
* Various formatting/commenting/file location tweaks per review comments
* Dropped Kconfig option to enable STACKTRACE as something logically separate
Signed-off-by: Steven J. Magnani <steve@digidescorp.com>
Diffstat (limited to 'arch/microblaze/kernel/hw_exception_handler.S')
-rw-r--r-- | arch/microblaze/kernel/hw_exception_handler.S | 4 |
1 files changed, 1 insertions, 3 deletions
diff --git a/arch/microblaze/kernel/hw_exception_handler.S b/arch/microblaze/kernel/hw_exception_handler.S index 995a212..7811954 100644 --- a/arch/microblaze/kernel/hw_exception_handler.S +++ b/arch/microblaze/kernel/hw_exception_handler.S @@ -78,9 +78,6 @@ #include <asm/asm-offsets.h> /* Helpful Macros */ -#ifndef CONFIG_MMU -#define EX_HANDLER_STACK_SIZ (4*19) -#endif #define NUM_TO_REG(num) r ## num #ifdef CONFIG_MMU @@ -988,6 +985,7 @@ ex_unaligned_fixup: .end _unaligned_data_exception #endif /* CONFIG_MMU */ +.global ex_handler_unhandled ex_handler_unhandled: /* FIXME add handle function for unhandled exception - dump register */ bri 0 |