diff options
author | Barry Song <barry.song@analog.com> | 2010-06-29 04:43:38 -0400 |
---|---|---|
committer | Mike Frysinger <vapier@gentoo.org> | 2010-10-22 03:48:54 -0400 |
commit | 41c3e3346ab8e5caf9e76395bd812fac884ad371 (patch) | |
tree | c633e8703e010f71d34dc7065ea136c8f4b5d069 /arch/blackfin/kernel | |
parent | 027285e86fca48f1af3ed8b86a5c03453766f5ca (diff) |
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.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/arch/blackfin/kernel/process.c b/arch/blackfin/kernel/process.c index c86a3ed5f48f..cd0c090ebc54 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) | |||
493 | return 1; | 493 | return 1; |
494 | #endif | 494 | #endif |
495 | 495 | ||
496 | #ifndef CONFIG_EXCEPTION_L1_SCRATCH | ||
497 | if (in_mem_const(addr, size, (unsigned long)l1_stack_base, l1_stack_len)) | ||
498 | return 1; | ||
499 | #endif | ||
500 | |||
496 | aret = in_async(addr, size); | 501 | aret = in_async(addr, size); |
497 | if (aret < 2) | 502 | if (aret < 2) |
498 | return aret; | 503 | return aret; |