From 556bbec5199e5fe94e70dca4df637a40579710bb Mon Sep 17 00:00:00 2001 From: Bernd Schmidt Date: Thu, 24 Apr 2008 03:06:15 +0800 Subject: [PATCH] --- yaml --- r: 92301 b: refs/heads/master c: d5adb029efad3c51db376d620319abe65d1efc21 h: refs/heads/master i: 92299: b8c668a089c2135c6242f7c5f639bc2b153978ff v: v3 --- [refs] | 2 +- trunk/arch/blackfin/kernel/process.c | 6 ++++++ trunk/include/asm-blackfin/processor.h | 5 +++-- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index db51f0adf5c6..ebac57a35839 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 1ebc723cf04b55e7aeeec2e758293575d29a9c2b +refs/heads/master: d5adb029efad3c51db376d620319abe65d1efc21 diff --git a/trunk/arch/blackfin/kernel/process.c b/trunk/arch/blackfin/kernel/process.c index fb94cbeafad6..be9fdd00d7cb 100644 --- a/trunk/arch/blackfin/kernel/process.c +++ b/trunk/arch/blackfin/kernel/process.c @@ -324,6 +324,12 @@ int _access_ok(unsigned long addr, unsigned long size) return 1; if (addr >= memory_mtd_end && (addr + size) <= physical_mem_end) return 1; + +#ifdef CONFIG_ROMFS_MTD_FS + /* For XIP, allow user space to use pointers within the ROMFS. */ + if (addr >= memory_mtd_start && (addr + size) <= memory_mtd_end) + return 1; +#endif #else if (addr >= memory_start && (addr + size) <= physical_mem_end) return 1; diff --git a/trunk/include/asm-blackfin/processor.h b/trunk/include/asm-blackfin/processor.h index 1033e5c76011..1c0040724612 100644 --- a/trunk/include/asm-blackfin/processor.h +++ b/trunk/include/asm-blackfin/processor.h @@ -26,9 +26,10 @@ static inline void wrusp(unsigned long usp) /* * User space process size: 1st byte beyond user address space. + * Fairly meaningless on nommu. Parts of user programs can be scattered + * in a lot of places, so just disable this by setting it to 0xFFFFFFFF. */ -extern unsigned long memory_end; -#define TASK_SIZE (memory_end) +#define TASK_SIZE 0xFFFFFFFF #ifdef __KERNEL__ #define STACK_TOP TASK_SIZE