Blackfin arch: cleanup the icplb/dcplb multiple hit checks
so that we always send the same signal and we handle the NULL ptr condition properly Signed-off-by: Mike Frysinger <vapier.adi@gmail.com> Signed-off-by: Bryan Wu <cooloney@kernel.org>
This commit is contained in:
parent
803a8d2acb
commit
c6c6f75d54
|
@ -364,13 +364,13 @@ asmlinkage void trap_c(struct pt_regs *fp)
|
||||||
/* 0x27 - Data CPLB Multiple Hits - Linux Trap Zero, handled here */
|
/* 0x27 - Data CPLB Multiple Hits - Linux Trap Zero, handled here */
|
||||||
case VEC_CPLB_MHIT:
|
case VEC_CPLB_MHIT:
|
||||||
info.si_code = ILL_CPLB_MULHIT;
|
info.si_code = ILL_CPLB_MULHIT;
|
||||||
#ifdef CONFIG_DEBUG_HUNT_FOR_ZERO
|
|
||||||
sig = SIGSEGV;
|
sig = SIGSEGV;
|
||||||
printk(KERN_NOTICE "NULL pointer access (probably)\n");
|
#ifdef CONFIG_DEBUG_HUNT_FOR_ZERO
|
||||||
#else
|
if (saved_dcplb_fault_addr < (void *)FIXED_CODE_START)
|
||||||
sig = SIGILL;
|
printk(KERN_NOTICE "NULL pointer access\n");
|
||||||
printk(KERN_NOTICE EXC_0x27(KERN_NOTICE));
|
else
|
||||||
#endif
|
#endif
|
||||||
|
printk(KERN_NOTICE EXC_0x27(KERN_NOTICE));
|
||||||
CHK_DEBUGGER_TRAP();
|
CHK_DEBUGGER_TRAP();
|
||||||
break;
|
break;
|
||||||
/* 0x28 - Emulation Watchpoint, handled here */
|
/* 0x28 - Emulation Watchpoint, handled here */
|
||||||
|
@ -419,13 +419,13 @@ asmlinkage void trap_c(struct pt_regs *fp)
|
||||||
/* 0x2D - Instruction CPLB Multiple Hits, handled here */
|
/* 0x2D - Instruction CPLB Multiple Hits, handled here */
|
||||||
case VEC_CPLB_I_MHIT:
|
case VEC_CPLB_I_MHIT:
|
||||||
info.si_code = ILL_CPLB_MULHIT;
|
info.si_code = ILL_CPLB_MULHIT;
|
||||||
#ifdef CONFIG_DEBUG_HUNT_FOR_ZERO
|
|
||||||
sig = SIGSEGV;
|
sig = SIGSEGV;
|
||||||
printk(KERN_NOTICE "Jump to address 0 - 0x0fff\n");
|
#ifdef CONFIG_DEBUG_HUNT_FOR_ZERO
|
||||||
#else
|
if (saved_icplb_fault_addr < (void *)FIXED_CODE_START)
|
||||||
sig = SIGILL;
|
printk(KERN_NOTICE "Jump to NULL address\n");
|
||||||
printk(KERN_NOTICE EXC_0x2D(KERN_NOTICE));
|
else
|
||||||
#endif
|
#endif
|
||||||
|
printk(KERN_NOTICE EXC_0x2D(KERN_NOTICE));
|
||||||
CHK_DEBUGGER_TRAP();
|
CHK_DEBUGGER_TRAP();
|
||||||
break;
|
break;
|
||||||
/* 0x2E - Illegal use of Supervisor Resource, handled here */
|
/* 0x2E - Illegal use of Supervisor Resource, handled here */
|
||||||
|
|
Loading…
Reference in New Issue