summaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorGraf Yang <graf.yang@analog.com>2008-10-27 11:12:53 +0100
committerBryan Wu <cooloney@kernel.org>2008-10-27 11:12:53 +0100
commit6776cf4476833df0f1e96bd9dba18c1ea4f582d5 (patch)
tree72925f2fe743e1ba5cef2cfa78c0269b6ba2f047 /arch
parentBlackfin arch: handle case of d_path() returning error in decode_address() (diff)
downloadlinux-6776cf4476833df0f1e96bd9dba18c1ea4f582d5.tar.xz
linux-6776cf4476833df0f1e96bd9dba18c1ea4f582d5.zip
Blackfin arch: fix bug - Fail to boot jffs2 kernel for BF561 with SMP patch
only if the cplb block overlapped with kernel area, this cplb need be locked Signed-off-by: Graf Yang <graf.yang@analog.com> Signed-off-by: Bryan Wu <cooloney@kernel.org>
Diffstat (limited to 'arch')
-rw-r--r--arch/blackfin/kernel/cplb-nompu/cplbinit.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/arch/blackfin/kernel/cplb-nompu/cplbinit.c b/arch/blackfin/kernel/cplb-nompu/cplbinit.c
index 512f8c92ead5..2debc900e246 100644
--- a/arch/blackfin/kernel/cplb-nompu/cplbinit.c
+++ b/arch/blackfin/kernel/cplb-nompu/cplbinit.c
@@ -188,10 +188,11 @@ static struct cplb_desc cplb_data[] = {
static u16 __init lock_kernel_check(u32 start, u32 end)
{
- if ((end <= (u32) _end && end >= (u32)_stext) ||
- (start <= (u32) _end && start >= (u32)_stext))
- return IN_KERNEL;
- return 0;
+ if (start >= (u32)_end || end <= (u32)_stext)
+ return 0;
+
+ /* This cplb block overlapped with kernel area. */
+ return IN_KERNEL;
}
static unsigned short __init