diff options
author | Kumar Gala <galak@kernel.crashing.org> | 2011-04-06 07:18:48 +0200 |
---|---|---|
committer | Kumar Gala <galak@kernel.crashing.org> | 2011-05-19 07:36:42 +0200 |
commit | d36b4c4f3cc6caae6d4a12d9f995513e4c3acdd5 (patch) | |
tree | 410d9093b681689b5e74cd6cba4b44601efb8876 /arch/powerpc/kernel/setup_64.c | |
parent | Merge remote branch 'benh/merge' into benh-next (diff) | |
download | linux-d36b4c4f3cc6caae6d4a12d9f995513e4c3acdd5.tar.xz linux-d36b4c4f3cc6caae6d4a12d9f995513e4c3acdd5.zip |
powerpc/fsl-booke64: Add support for Debug Level exception handler
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
Diffstat (limited to 'arch/powerpc/kernel/setup_64.c')
-rw-r--r-- | arch/powerpc/kernel/setup_64.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/arch/powerpc/kernel/setup_64.c b/arch/powerpc/kernel/setup_64.c index c2ec0a12e14f..a88bf2713d41 100644 --- a/arch/powerpc/kernel/setup_64.c +++ b/arch/powerpc/kernel/setup_64.c @@ -62,6 +62,7 @@ #include <asm/udbg.h> #include <asm/kexec.h> #include <asm/mmu_context.h> +#include <asm/code-patching.h> #include "setup.h" @@ -477,6 +478,9 @@ static void __init irqstack_early_init(void) #ifdef CONFIG_PPC_BOOK3E static void __init exc_lvl_early_init(void) { + extern unsigned int interrupt_base_book3e; + extern unsigned int exc_debug_debug_book3e; + unsigned int i; for_each_possible_cpu(i) { @@ -487,6 +491,10 @@ static void __init exc_lvl_early_init(void) mcheckirq_ctx[i] = (struct thread_info *) __va(memblock_alloc(THREAD_SIZE, THREAD_SIZE)); } + + if (cpu_has_feature(CPU_FTR_DEBUG_LVL_EXC)) + patch_branch(&interrupt_base_book3e + (0x040 / 4) + 1, + (unsigned long)&exc_debug_debug_book3e, 0); } #else #define exc_lvl_early_init() |