diff options
author | Graf Yang <graf.yang@analog.com> | 2008-10-27 11:12:53 +0100 |
---|---|---|
committer | Bryan Wu <cooloney@kernel.org> | 2008-10-27 11:12:53 +0100 |
commit | 6776cf4476833df0f1e96bd9dba18c1ea4f582d5 (patch) | |
tree | 72925f2fe743e1ba5cef2cfa78c0269b6ba2f047 | |
parent | Blackfin arch: handle case of d_path() returning error in decode_address() (diff) | |
download | linux-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>
-rw-r--r-- | arch/blackfin/kernel/cplb-nompu/cplbinit.c | 9 |
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 |