diff options
author | KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com> | 2009-09-22 19:45:46 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2009-09-23 10:39:41 -0400 |
commit | 908eedc6168bd92e89f90d89fa389065a36358fa (patch) | |
tree | 612881abb2aae920ab1e62e88990ee7b6a988f51 /arch | |
parent | 9492587cf35d370db33ef4b38375dfb35a105b61 (diff) |
walk system ram range
Originally, walk_memory_resource() was introduced to traverse all memory
of "System RAM" for detecting memory hotplug/unplug range. For doing so,
flags of IORESOUCE_MEM|IORESOURCE_BUSY was used and this was enough for
memory hotplug.
But for using other purpose, /proc/kcore, this may includes some firmware
area marked as IORESOURCE_BUSY | IORESOUCE_MEM. This patch makes the
check strict to find out busy "System RAM".
Note: PPC64 keeps their own walk_memory_resouce(), which walk through
ppc64's lmb informaton. Because old kclist_add() is called per lmb, this
patch makes no difference in behavior, finally.
And this patch removes CONFIG_MEMORY_HOTPLUG check from this function.
Because pfn_valid() just show "there is memmap or not* and cannot be used
for "there is physical memory or not", this function is useful in generic
to scan physical memory range.
Signed-off-by: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Cc: Ralf Baechle <ralf@linux-mips.org>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: WANG Cong <xiyou.wangcong@gmail.com>
Cc: Américo Wang <xiyou.wangcong@gmail.com>
Cc: David Rientjes <rientjes@google.com>
Cc: Roland Dreier <rolandd@cisco.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/powerpc/mm/mem.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/arch/powerpc/mm/mem.c b/arch/powerpc/mm/mem.c index 0e5c59b995ef..59736317bf0e 100644 --- a/arch/powerpc/mm/mem.c +++ b/arch/powerpc/mm/mem.c | |||
@@ -143,8 +143,8 @@ int arch_add_memory(int nid, u64 start, u64 size) | |||
143 | * memory regions, find holes and callback for contiguous regions. | 143 | * memory regions, find holes and callback for contiguous regions. |
144 | */ | 144 | */ |
145 | int | 145 | int |
146 | walk_memory_resource(unsigned long start_pfn, unsigned long nr_pages, void *arg, | 146 | walk_system_ram_range(unsigned long start_pfn, unsigned long nr_pages, |
147 | int (*func)(unsigned long, unsigned long, void *)) | 147 | void *arg, int (*func)(unsigned long, unsigned long, void *)) |
148 | { | 148 | { |
149 | struct lmb_property res; | 149 | struct lmb_property res; |
150 | unsigned long pfn, len; | 150 | unsigned long pfn, len; |
@@ -166,7 +166,7 @@ walk_memory_resource(unsigned long start_pfn, unsigned long nr_pages, void *arg, | |||
166 | } | 166 | } |
167 | return ret; | 167 | return ret; |
168 | } | 168 | } |
169 | EXPORT_SYMBOL_GPL(walk_memory_resource); | 169 | EXPORT_SYMBOL_GPL(walk_system_ram_range); |
170 | 170 | ||
171 | /* | 171 | /* |
172 | * Initialize the bootmem system and give it all the memory we | 172 | * Initialize the bootmem system and give it all the memory we |