diff options
author | Ingo Molnar <mingo@elte.hu> | 2008-06-16 05:23:36 -0400 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2008-06-16 05:23:36 -0400 |
commit | 766d02786ecd22932beeb9ca8bad6d8c5a552ef9 (patch) | |
tree | f6f2df0e35bbea914d1f4d12be6d02f128c73575 /arch/blackfin/kernel/traps.c | |
parent | 906d882cacecd37ad2fdd03ed2a9b232bcb9507e (diff) | |
parent | 066519068ad2fbe98c7f45552b1f592903a9c8c8 (diff) |
Merge branch 'linus' into core/rcu
Diffstat (limited to 'arch/blackfin/kernel/traps.c')
-rw-r--r-- | arch/blackfin/kernel/traps.c | 24 |
1 files changed, 11 insertions, 13 deletions
diff --git a/arch/blackfin/kernel/traps.c b/arch/blackfin/kernel/traps.c index 5b847070dae5..f061f5181623 100644 --- a/arch/blackfin/kernel/traps.c +++ b/arch/blackfin/kernel/traps.c | |||
@@ -67,7 +67,7 @@ void __init trap_init(void) | |||
67 | CSYNC(); | 67 | CSYNC(); |
68 | } | 68 | } |
69 | 69 | ||
70 | void *saved_icplb_fault_addr, *saved_dcplb_fault_addr; | 70 | unsigned long saved_icplb_fault_addr, saved_dcplb_fault_addr; |
71 | 71 | ||
72 | int kstack_depth_to_print = 48; | 72 | int kstack_depth_to_print = 48; |
73 | 73 | ||
@@ -364,13 +364,13 @@ asmlinkage void trap_c(struct pt_regs *fp) | |||
364 | /* 0x27 - Data CPLB Multiple Hits - Linux Trap Zero, handled here */ | 364 | /* 0x27 - Data CPLB Multiple Hits - Linux Trap Zero, handled here */ |
365 | case VEC_CPLB_MHIT: | 365 | case VEC_CPLB_MHIT: |
366 | info.si_code = ILL_CPLB_MULHIT; | 366 | info.si_code = ILL_CPLB_MULHIT; |
367 | #ifdef CONFIG_DEBUG_HUNT_FOR_ZERO | ||
368 | sig = SIGSEGV; | 367 | sig = SIGSEGV; |
369 | printk(KERN_NOTICE "NULL pointer access (probably)\n"); | 368 | #ifdef CONFIG_DEBUG_HUNT_FOR_ZERO |
370 | #else | 369 | if (saved_dcplb_fault_addr < FIXED_CODE_START) |
371 | sig = SIGILL; | 370 | printk(KERN_NOTICE "NULL pointer access\n"); |
372 | printk(KERN_NOTICE EXC_0x27(KERN_NOTICE)); | 371 | else |
373 | #endif | 372 | #endif |
373 | printk(KERN_NOTICE EXC_0x27(KERN_NOTICE)); | ||
374 | CHK_DEBUGGER_TRAP(); | 374 | CHK_DEBUGGER_TRAP(); |
375 | break; | 375 | break; |
376 | /* 0x28 - Emulation Watchpoint, handled here */ | 376 | /* 0x28 - Emulation Watchpoint, handled here */ |
@@ -419,13 +419,13 @@ asmlinkage void trap_c(struct pt_regs *fp) | |||
419 | /* 0x2D - Instruction CPLB Multiple Hits, handled here */ | 419 | /* 0x2D - Instruction CPLB Multiple Hits, handled here */ |
420 | case VEC_CPLB_I_MHIT: | 420 | case VEC_CPLB_I_MHIT: |
421 | info.si_code = ILL_CPLB_MULHIT; | 421 | info.si_code = ILL_CPLB_MULHIT; |
422 | #ifdef CONFIG_DEBUG_HUNT_FOR_ZERO | ||
423 | sig = SIGSEGV; | 422 | sig = SIGSEGV; |
424 | printk(KERN_NOTICE "Jump to address 0 - 0x0fff\n"); | 423 | #ifdef CONFIG_DEBUG_HUNT_FOR_ZERO |
425 | #else | 424 | if (saved_icplb_fault_addr < FIXED_CODE_START) |
426 | sig = SIGILL; | 425 | printk(KERN_NOTICE "Jump to NULL address\n"); |
427 | printk(KERN_NOTICE EXC_0x2D(KERN_NOTICE)); | 426 | else |
428 | #endif | 427 | #endif |
428 | printk(KERN_NOTICE EXC_0x2D(KERN_NOTICE)); | ||
429 | CHK_DEBUGGER_TRAP(); | 429 | CHK_DEBUGGER_TRAP(); |
430 | break; | 430 | break; |
431 | /* 0x2E - Illegal use of Supervisor Resource, handled here */ | 431 | /* 0x2E - Illegal use of Supervisor Resource, handled here */ |
@@ -939,8 +939,6 @@ void panic_cplb_error(int cplb_panic, struct pt_regs *fp) | |||
939 | 939 | ||
940 | oops_in_progress = 1; | 940 | oops_in_progress = 1; |
941 | 941 | ||
942 | printk(KERN_EMERG "DCPLB_FAULT_ADDR=%p\n", saved_dcplb_fault_addr); | ||
943 | printk(KERN_EMERG "ICPLB_FAULT_ADDR=%p\n", saved_icplb_fault_addr); | ||
944 | dump_bfin_process(fp); | 942 | dump_bfin_process(fp); |
945 | dump_bfin_mem(fp); | 943 | dump_bfin_mem(fp); |
946 | show_regs(fp); | 944 | show_regs(fp); |