aboutsummaryrefslogtreecommitdiffstats
path: root/arch/blackfin/kernel/traps.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/blackfin/kernel/traps.c')
-rw-r--r--arch/blackfin/kernel/traps.c46
1 files changed, 22 insertions, 24 deletions
diff --git a/arch/blackfin/kernel/traps.c b/arch/blackfin/kernel/traps.c
index a58d0f50be20..114277bb46f8 100644
--- a/arch/blackfin/kernel/traps.c
+++ b/arch/blackfin/kernel/traps.c
@@ -27,16 +27,15 @@
27 * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 27 * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
28 */ 28 */
29 29
30#include <asm/uaccess.h> 30#include <linux/uaccess.h>
31#include <linux/interrupt.h>
32#include <linux/module.h>
33#include <linux/kallsyms.h>
31#include <asm/traps.h> 34#include <asm/traps.h>
32#include <asm/cacheflush.h> 35#include <asm/cacheflush.h>
33#include <asm/blackfin.h> 36#include <asm/blackfin.h>
34#include <asm/uaccess.h>
35#include <asm/irq_handler.h> 37#include <asm/irq_handler.h>
36#include <asm/trace.h> 38#include <asm/trace.h>
37#include <linux/interrupt.h>
38#include <linux/module.h>
39#include <linux/kallsyms.h>
40 39
41#ifdef CONFIG_KGDB 40#ifdef CONFIG_KGDB
42# include <linux/debugger.h> 41# include <linux/debugger.h>
@@ -77,7 +76,7 @@ static int printk_address(unsigned long address)
77 if (!modname) 76 if (!modname)
78 modname = delim = ""; 77 modname = delim = "";
79 return printk("<0x%p> { %s%s%s%s + 0x%lx }", 78 return printk("<0x%p> { %s%s%s%s + 0x%lx }",
80 (void*)address, delim, modname, delim, symname, 79 (void *)address, delim, modname, delim, symname,
81 (unsigned long)offset); 80 (unsigned long)offset);
82 81
83 } 82 }
@@ -120,7 +119,7 @@ static int printk_address(unsigned long address)
120 119
121 write_unlock_irq(&tasklist_lock); 120 write_unlock_irq(&tasklist_lock);
122 return printk("<0x%p> [ %s + 0x%lx ]", 121 return printk("<0x%p> [ %s + 0x%lx ]",
123 (void*)address, name, offset); 122 (void *)address, name, offset);
124 } 123 }
125 124
126 vml = vml->next; 125 vml = vml->next;
@@ -129,7 +128,7 @@ static int printk_address(unsigned long address)
129 write_unlock_irq(&tasklist_lock); 128 write_unlock_irq(&tasklist_lock);
130 129
131 /* we were unable to find this address anywhere */ 130 /* we were unable to find this address anywhere */
132 return printk("[<0x%p>]", (void*)address); 131 return printk("[<0x%p>]", (void *)address);
133} 132}
134 133
135asmlinkage void trap_c(struct pt_regs *fp) 134asmlinkage void trap_c(struct pt_regs *fp)
@@ -538,29 +537,28 @@ void dump_bfin_regs(struct pt_regs *fp, void *retaddr)
538 printk(KERN_EMERG "TEXT = 0x%p-0x%p DATA = 0x%p-0x%p\n" 537 printk(KERN_EMERG "TEXT = 0x%p-0x%p DATA = 0x%p-0x%p\n"
539 KERN_EMERG "BSS = 0x%p-0x%p USER-STACK = 0x%p\n" 538 KERN_EMERG "BSS = 0x%p-0x%p USER-STACK = 0x%p\n"
540 KERN_EMERG "\n", 539 KERN_EMERG "\n",
541 (void*)current->mm->start_code, 540 (void *)current->mm->start_code,
542 (void*)current->mm->end_code, 541 (void *)current->mm->end_code,
543 (void*)current->mm->start_data, 542 (void *)current->mm->start_data,
544 (void*)current->mm->end_data, 543 (void *)current->mm->end_data,
545 (void*)current->mm->end_data, 544 (void *)current->mm->end_data,
546 (void*)current->mm->brk, 545 (void *)current->mm->brk,
547 (void*)current->mm->start_stack); 546 (void *)current->mm->start_stack);
548 } 547 }
549 548
550 printk(KERN_EMERG "return address: [0x%p]; contents of:", retaddr); 549 printk(KERN_EMERG "return address: [0x%p]; contents of:", retaddr);
551 if (retaddr != 0 && retaddr <= (void*)physical_mem_end 550 if (retaddr != 0 && retaddr <= (void *)physical_mem_end
552#if L1_CODE_LENGTH != 0 551#if L1_CODE_LENGTH != 0
553 /* FIXME: Copy the code out of L1 Instruction SRAM through dma 552 /* FIXME: Copy the code out of L1 Instruction SRAM through dma
554 memcpy. */ 553 memcpy. */
555 && !(retaddr >= (void*)L1_CODE_START 554 && !(retaddr >= (void *)L1_CODE_START
556 && retaddr < (void*)(L1_CODE_START + L1_CODE_LENGTH)) 555 && retaddr < (void *)(L1_CODE_START + L1_CODE_LENGTH))
557#endif 556#endif
558 ) { 557 ) {
559 int i = ((unsigned int)retaddr & 0xFFFFFFF0) - 32; 558 int i = ((unsigned int)retaddr & 0xFFFFFFF0) - 32;
560 unsigned short x = 0; 559 unsigned short x = 0;
561 for (; i < ((unsigned int)retaddr & 0xFFFFFFF0 ) + 32 ; 560 for (; i < ((unsigned int)retaddr & 0xFFFFFFF0) + 32; i += 2) {
562 i += 2) { 561 if (!(i & 0xF))
563 if ( !(i & 0xF) )
564 printk(KERN_EMERG "\n" KERN_EMERG 562 printk(KERN_EMERG "\n" KERN_EMERG
565 "0x%08x: ", i); 563 "0x%08x: ", i);
566 564
@@ -579,7 +577,7 @@ void dump_bfin_regs(struct pt_regs *fp, void *retaddr)
579 " The rest of this error" 577 " The rest of this error"
580 " is meanless\n"); 578 " is meanless\n");
581#endif 579#endif
582 if ( i == (unsigned int)retaddr ) 580 if (i == (unsigned int)retaddr)
583 printk("[%04x]", x); 581 printk("[%04x]", x);
584 else 582 else
585 printk(" %04x ", x); 583 printk(" %04x ", x);
@@ -672,8 +670,8 @@ void panic_cplb_error(int cplb_panic, struct pt_regs *fp)
672 break; 670 break;
673 } 671 }
674 672
675 printk(KERN_EMERG "DCPLB_FAULT_ADDR=%p\n", (void*)bfin_read_DCPLB_FAULT_ADDR()); 673 printk(KERN_EMERG "DCPLB_FAULT_ADDR=%p\n", (void *)bfin_read_DCPLB_FAULT_ADDR());
676 printk(KERN_EMERG "ICPLB_FAULT_ADDR=%p\n", (void*)bfin_read_ICPLB_FAULT_ADDR()); 674 printk(KERN_EMERG "ICPLB_FAULT_ADDR=%p\n", (void *)bfin_read_ICPLB_FAULT_ADDR());
677 dump_bfin_regs(fp, (void *)fp->retx); 675 dump_bfin_regs(fp, (void *)fp->retx);
678 dump_stack(); 676 dump_stack();
679 panic("Unrecoverable event\n"); 677 panic("Unrecoverable event\n");