diff options
author | Tejun Heo <tj@kernel.org> | 2011-12-08 13:22:08 -0500 |
---|---|---|
committer | Tejun Heo <tj@kernel.org> | 2011-12-08 13:22:08 -0500 |
commit | 1d7cfe18ec2eb2d0480a9b29465af66b61291202 (patch) | |
tree | a618245968fb20ef0d08a73ea65ee1f1721fcffe /arch | |
parent | 7fb0bc3f06fdc3a35e41bcea7a15e53d2515362f (diff) |
powerpc: Use HAVE_MEMBLOCK_NODE_MAP
powerpc doesn't access early_node_map[] directly and enabling
HAVE_MEMBLOCK_NODE_MAP is trivial - replacing add_active_range() calls
with memblock_set_node() and selecting HAVE_MEMBLOCK_NODE_MAP is
enough.
Signed-off-by: Tejun Heo <tj@kernel.org>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Yinghai Lu <yinghai@kernel.org>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/powerpc/Kconfig | 1 | ||||
-rw-r--r-- | arch/powerpc/mm/mem.c | 2 | ||||
-rw-r--r-- | arch/powerpc/mm/numa.c | 10 |
3 files changed, 6 insertions, 7 deletions
diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig index 951e18f5335b..8516477c4dc5 100644 --- a/arch/powerpc/Kconfig +++ b/arch/powerpc/Kconfig | |||
@@ -117,6 +117,7 @@ config PPC | |||
117 | select HAVE_KRETPROBES | 117 | select HAVE_KRETPROBES |
118 | select HAVE_ARCH_TRACEHOOK | 118 | select HAVE_ARCH_TRACEHOOK |
119 | select HAVE_MEMBLOCK | 119 | select HAVE_MEMBLOCK |
120 | select HAVE_MEMBLOCK_NODE_MAP | ||
120 | select HAVE_DMA_ATTRS | 121 | select HAVE_DMA_ATTRS |
121 | select HAVE_DMA_API_DEBUG | 122 | select HAVE_DMA_API_DEBUG |
122 | select USE_GENERIC_SMP_HELPERS if SMP | 123 | select USE_GENERIC_SMP_HELPERS if SMP |
diff --git a/arch/powerpc/mm/mem.c b/arch/powerpc/mm/mem.c index 2dd6bdd31fe1..8e2eb6611b0b 100644 --- a/arch/powerpc/mm/mem.c +++ b/arch/powerpc/mm/mem.c | |||
@@ -199,7 +199,7 @@ void __init do_init_bootmem(void) | |||
199 | unsigned long start_pfn, end_pfn; | 199 | unsigned long start_pfn, end_pfn; |
200 | start_pfn = memblock_region_memory_base_pfn(reg); | 200 | start_pfn = memblock_region_memory_base_pfn(reg); |
201 | end_pfn = memblock_region_memory_end_pfn(reg); | 201 | end_pfn = memblock_region_memory_end_pfn(reg); |
202 | add_active_range(0, start_pfn, end_pfn); | 202 | memblock_set_node(0, (phys_addr_t)ULLONG_MAX, 0); |
203 | } | 203 | } |
204 | 204 | ||
205 | /* Add all physical memory to the bootmem map, mark each area | 205 | /* Add all physical memory to the bootmem map, mark each area |
diff --git a/arch/powerpc/mm/numa.c b/arch/powerpc/mm/numa.c index 261adbd3b55a..e6eea0ac80c8 100644 --- a/arch/powerpc/mm/numa.c +++ b/arch/powerpc/mm/numa.c | |||
@@ -690,9 +690,7 @@ static void __init parse_drconf_memory(struct device_node *memory) | |||
690 | node_set_online(nid); | 690 | node_set_online(nid); |
691 | sz = numa_enforce_memory_limit(base, size); | 691 | sz = numa_enforce_memory_limit(base, size); |
692 | if (sz) | 692 | if (sz) |
693 | add_active_range(nid, base >> PAGE_SHIFT, | 693 | memblock_set_node(base, sz, nid); |
694 | (base >> PAGE_SHIFT) | ||
695 | + (sz >> PAGE_SHIFT)); | ||
696 | } while (--ranges); | 694 | } while (--ranges); |
697 | } | 695 | } |
698 | } | 696 | } |
@@ -782,8 +780,7 @@ new_range: | |||
782 | continue; | 780 | continue; |
783 | } | 781 | } |
784 | 782 | ||
785 | add_active_range(nid, start >> PAGE_SHIFT, | 783 | memblock_set_node(start, size, nid); |
786 | (start >> PAGE_SHIFT) + (size >> PAGE_SHIFT)); | ||
787 | 784 | ||
788 | if (--ranges) | 785 | if (--ranges) |
789 | goto new_range; | 786 | goto new_range; |
@@ -819,7 +816,8 @@ static void __init setup_nonnuma(void) | |||
819 | end_pfn = memblock_region_memory_end_pfn(reg); | 816 | end_pfn = memblock_region_memory_end_pfn(reg); |
820 | 817 | ||
821 | fake_numa_create_new_node(end_pfn, &nid); | 818 | fake_numa_create_new_node(end_pfn, &nid); |
822 | add_active_range(nid, start_pfn, end_pfn); | 819 | memblock_set_node(PFN_PHYS(start_pfn), |
820 | PFN_PHYS(end_pfn - start_pfn), nid); | ||
823 | node_set_online(nid); | 821 | node_set_online(nid); |
824 | } | 822 | } |
825 | } | 823 | } |