diff options
author | Paul Mundt <lethal@linux-sh.org> | 2010-03-03 13:16:31 +0900 |
---|---|---|
committer | Paul Mundt <lethal@linux-sh.org> | 2010-03-03 13:16:31 +0900 |
commit | 09e1172317d1038918c5a139ba31155610f802b5 (patch) | |
tree | d8aa26ccf5163879f1fd8fcfb8235ccf8914b5ef /arch/sh | |
parent | a1042aa248e4ea7f39d5ce13f080cbf3b6c42618 (diff) | |
download | op-kernel-dev-09e1172317d1038918c5a139ba31155610f802b5.zip op-kernel-dev-09e1172317d1038918c5a139ba31155610f802b5.tar.gz |
sh: establish PMB mappings for NUMA nodes.
In the case of NUMA emulation when in range PPNs are being used for
secondary nodes, we need to make sure that the PMB has a mapping for it
before setting up the pgdat. This prevents the MMU from resetting.
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Diffstat (limited to 'arch/sh')
-rw-r--r-- | arch/sh/kernel/setup.c | 3 | ||||
-rw-r--r-- | arch/sh/mm/numa.c | 3 |
2 files changed, 4 insertions, 2 deletions
diff --git a/arch/sh/kernel/setup.c b/arch/sh/kernel/setup.c index 3459e70..8870d6b 100644 --- a/arch/sh/kernel/setup.c +++ b/arch/sh/kernel/setup.c @@ -443,7 +443,7 @@ void __init setup_arch(char **cmdline_p) nodes_clear(node_online_map); - /* Setup bootmem with available RAM */ + pmb_init(); lmb_init(); setup_memory(); sparse_init(); @@ -452,7 +452,6 @@ void __init setup_arch(char **cmdline_p) conswitchp = &dummy_con; #endif paging_init(); - pmb_init(); ioremap_fixed_init(); diff --git a/arch/sh/mm/numa.c b/arch/sh/mm/numa.c index 422e927..961b340 100644 --- a/arch/sh/mm/numa.c +++ b/arch/sh/mm/numa.c @@ -74,6 +74,9 @@ void __init setup_bootmem_node(int nid, unsigned long start, unsigned long end) start_pfn = start >> PAGE_SHIFT; end_pfn = end >> PAGE_SHIFT; + pmb_bolt_mapping((unsigned long)__va(start), start, end - start, + PAGE_KERNEL); + lmb_add(start, end - start); __add_active_range(nid, start_pfn, end_pfn); |