summaryrefslogtreecommitdiff
path: root/arch/blackfin/kernel
diff options
context:
space:
mode:
authorBarry Song <barry.song@analog.com>2010-06-29 08:43:38 (GMT)
committerMike Frysinger <vapier@gentoo.org>2010-10-22 07:48:54 (GMT)
commit41c3e3346ab8e5caf9e76395bd812fac884ad371 (patch)
treec633e8703e010f71d34dc7065ea136c8f4b5d069 /arch/blackfin/kernel
parent027285e86fca48f1af3ed8b86a5c03453766f5ca (diff)
downloadlinux-41c3e3346ab8e5caf9e76395bd812fac884ad371.tar.xz
Blackfin: access_ok: permit L1 stack
When apps run with their stack in L1, some system calls might be made where a buffer is in the stack as an argument. So make sure the core Blackfin access code does not reject this memory location. Signed-off-by: Barry Song <barry.song@analog.com> Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Diffstat (limited to 'arch/blackfin/kernel')
-rw-r--r--arch/blackfin/kernel/process.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/arch/blackfin/kernel/process.c b/arch/blackfin/kernel/process.c
index c86a3ed..cd0c090 100644
--- a/arch/blackfin/kernel/process.c
+++ b/arch/blackfin/kernel/process.c
@@ -493,6 +493,11 @@ int _access_ok(unsigned long addr, unsigned long size)
return 1;
#endif
+#ifndef CONFIG_EXCEPTION_L1_SCRATCH
+ if (in_mem_const(addr, size, (unsigned long)l1_stack_base, l1_stack_len))
+ return 1;
+#endif
+
aret = in_async(addr, size);
if (aret < 2)
return aret;