sh: NUMA lmb fixes
PATCH 1/1 sh: NUMA lmb fixes
From: Magnus Damm <[email protected]>
This patch updates the NUMA version of setup_memory() with UMA code changes and also modifies the last argument to lmb_alloc_base() to use an address instead of pfn.
Signed-off-by Magnus Damm <[email protected]>
---
arch/sh/mm/numa.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-)
arch/sh/mm/numa.c +11 -2
@@ -38,6 +38,15 @@ void __init setup_memory(void) (__MEMORY_START + CONFIG_ZERO_PAGE_OFFSET));/* +* Reserve physical pages below CONFIG_ZERO_PAGE_OFFSET. +*/ +if (CONFIG_ZERO_PAGE_OFFSET !=0 ) +lmb_reserve (__MEMORY_START,CONFIG_ZERO_PAGE_OFFSET ); + +lmb_analyze (); +lmb_dump_all (); + +/* * Node 0 sets up its pgdat at the first available pfn, * and bumps it up before setting up the bootmem allocator. */
@@ -71,7 +80,7 @@ void __init setup_bootmem_node(int nid,/* Node-local pgdat */ NODE_DATA (nid) =__va (lmb_alloc_base (sizeof (struct pglist_data ), -SMP_CACHE_BYTES , end_pfn)); +SMP_CACHE_BYTES , end));memset (NODE_DATA (nid),0 ,sizeof (struct pglist_data ));NODE_DATA (nid)->bdata = &bootmem_node_data[nid];
@@ -81,7 +90,7 @@ void __init setup_bootmem_node(int nid,/* Node-local bootmap */ bootmap_pages =bootmem_bootmap_pages (end_pfn - start_pfn); bootmem_paddr =lmb_alloc_base (bootmap_pages <<PAGE_SHIFT , -PAGE_SIZE , end_pfn); +PAGE_SIZE , end);init_bootmem_node (NODE_DATA (nid), bootmem_paddr >>PAGE_SHIFT , start_pfn, end_pfn);