diff options
author | Barry Song <barry.song@analog.com> | 2010-02-20 22:01:20 -0500 |
---|---|---|
committer | Bob Liu <lliubbo@gmail.com> | 2012-03-20 23:00:06 -0400 |
commit | 4936afc6510608ddabeb4f562cf1a291cc38faa1 (patch) | |
tree | 388dd4e558e2fbbd6a2b058aea7e863cdcb389d0 /arch/blackfin/kernel/cplb-mpu | |
parent | edd8a97e6e89ee2edc86e21db6253a73741f3c72 (diff) |
blackfin: cplb-mpu: fix page mask table overflow
page mask table will overflow without xip related macros.
Signed-off-by: Barry Song <barry.song@analog.com>
Signed-off-by: Bob Liu <lliubbo@gmail.com>
Diffstat (limited to 'arch/blackfin/kernel/cplb-mpu')
-rw-r--r-- | arch/blackfin/kernel/cplb-mpu/cplbmgr.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/arch/blackfin/kernel/cplb-mpu/cplbmgr.c b/arch/blackfin/kernel/cplb-mpu/cplbmgr.c index 8de92299b3ee..b56bd8514b7c 100644 --- a/arch/blackfin/kernel/cplb-mpu/cplbmgr.c +++ b/arch/blackfin/kernel/cplb-mpu/cplbmgr.c | |||
@@ -120,6 +120,7 @@ MGR_ATTR static noinline int dcplb_miss(unsigned int cpu) | |||
120 | d_data = L2_DMEMORY; | 120 | d_data = L2_DMEMORY; |
121 | } else if (addr >= physical_mem_end) { | 121 | } else if (addr >= physical_mem_end) { |
122 | if (addr >= ASYNC_BANK0_BASE && addr < ASYNC_BANK3_BASE + ASYNC_BANK3_SIZE) { | 122 | if (addr >= ASYNC_BANK0_BASE && addr < ASYNC_BANK3_BASE + ASYNC_BANK3_SIZE) { |
123 | #if defined(CONFIG_ROMFS_ON_MTD) && defined(CONFIG_MTD_ROM) | ||
123 | mask = current_rwx_mask[cpu]; | 124 | mask = current_rwx_mask[cpu]; |
124 | if (mask) { | 125 | if (mask) { |
125 | int page = (addr - (ASYNC_BANK0_BASE - _ramend)) >> PAGE_SHIFT; | 126 | int page = (addr - (ASYNC_BANK0_BASE - _ramend)) >> PAGE_SHIFT; |
@@ -129,6 +130,7 @@ MGR_ATTR static noinline int dcplb_miss(unsigned int cpu) | |||
129 | if (mask[idx] & bit) | 130 | if (mask[idx] & bit) |
130 | d_data |= CPLB_USER_RD; | 131 | d_data |= CPLB_USER_RD; |
131 | } | 132 | } |
133 | #endif | ||
132 | } else if (addr >= BOOT_ROM_START && addr < BOOT_ROM_START + BOOT_ROM_LENGTH | 134 | } else if (addr >= BOOT_ROM_START && addr < BOOT_ROM_START + BOOT_ROM_LENGTH |
133 | && (status & (FAULT_RW | FAULT_USERSUPV)) == FAULT_USERSUPV) { | 135 | && (status & (FAULT_RW | FAULT_USERSUPV)) == FAULT_USERSUPV) { |
134 | addr &= ~(1 * 1024 * 1024 - 1); | 136 | addr &= ~(1 * 1024 * 1024 - 1); |