summaryrefslogtreecommitdiffstats
path: root/arch/m68k
diff options
context:
space:
mode:
authorGreg Ungerer <gerg@linux-m68k.org>2017-09-05 22:57:06 +1000
committerGreg Ungerer <gerg@linux-m68k.org>2017-11-06 08:25:20 +1000
commitf55ab8f27548ff3431a6567d400c6757c49fd520 (patch)
treecc03aab39d6a5a9cda66a5ea82c449fd04764b25 /arch/m68k
parent34fa9b2177a2abec05ae5976eaadbcce648a0982 (diff)
downloadop-kernel-dev-f55ab8f27548ff3431a6567d400c6757c49fd520.zip
op-kernel-dev-f55ab8f27548ff3431a6567d400c6757c49fd520.tar.gz
m68k: fix ColdFire node shift size calculation
The m68k pg_data_table is a fix size array defined in arch/m68k/mm/init.c. Index numbers within it are defined based on memory size. But for Coldfire these don't take into account a non-zero physical RAM base address, and this causes us to access past the end of this array at system start time. Change the node shift calculation so that we keep the index inside its range. Reported-by: Angelo Dureghello <angelo@sysam.it> Tested-by: Angelo Dureghello <angelo@sysam.it> Signed-off-by: Greg Ungerer <gerg@linux-m68k.org>
Diffstat (limited to 'arch/m68k')
-rw-r--r--arch/m68k/mm/mcfmmu.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/m68k/mm/mcfmmu.c b/arch/m68k/mm/mcfmmu.c
index 11eb333..2925d79 100644
--- a/arch/m68k/mm/mcfmmu.c
+++ b/arch/m68k/mm/mcfmmu.c
@@ -170,7 +170,7 @@ void __init cf_bootmem_alloc(void)
max_pfn = max_low_pfn = PFN_DOWN(_ramend);
high_memory = (void *)_ramend;
- m68k_virt_to_node_shift = fls(_ramend - _rambase - 1) - 6;
+ m68k_virt_to_node_shift = fls(_ramend - 1) - 6;
module_fixup(NULL, __start_fixup, __stop_fixup);
/* setup bootmem data */
OpenPOWER on IntegriCloud