summaryrefslogtreecommitdiffstats
path: root/arch/blackfin/kernel
diff options
context:
space:
mode:
authorGraf Yang2009-07-21 04:26:57 +0200
committerMike Frysinger2009-09-17 03:31:55 +0200
commit36b841288656b9b30b5d2add2fd136ac7eab5867 (patch)
treeb3faec0b85a2814216c791de99435e74a43b6148 /arch/blackfin/kernel
parentBlackfin: clean up duplicate I2C device type definitions (diff)
downloadkernel-qcow2-linux-36b841288656b9b30b5d2add2fd136ac7eab5867.tar.gz
kernel-qcow2-linux-36b841288656b9b30b5d2add2fd136ac7eab5867.tar.xz
kernel-qcow2-linux-36b841288656b9b30b5d2add2fd136ac7eab5867.zip
Blackfin: fix MPU handling of invalid memory accesses
The protect_page() function was incorrectly setting up the hardware tables based on possible access capabilities rather than the actual requested values. This means we would grant more access to mmap-ed pages than we should have. Once we fix this, we need to tweak the signal generated by such accesses to aline ourselves with other ports. This allows the LTP mmap0{5,6,7} cases to run properly. Signed-off-by: Graf Yang <graf.yang@analog.com> Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Diffstat (limited to 'arch/blackfin/kernel')
-rw-r--r--arch/blackfin/kernel/traps.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/blackfin/kernel/traps.c b/arch/blackfin/kernel/traps.c
index 18c6cd4150f8..644e35e33553 100644
--- a/arch/blackfin/kernel/traps.c
+++ b/arch/blackfin/kernel/traps.c
@@ -411,7 +411,7 @@ asmlinkage void trap_c(struct pt_regs *fp)
/* 0x23 - Data CPLB protection violation, handled here */
case VEC_CPLB_VL:
info.si_code = ILL_CPLB_VI;
- sig = SIGBUS;
+ sig = SIGSEGV;
strerror = KERN_NOTICE EXC_0x23(KERN_NOTICE);
CHK_DEBUGGER_TRAP_MAYBE();
break;