summaryrefslogtreecommitdiffstats
path: root/include/linux
diff options
context:
space:
mode:
authorKAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>2007-10-16 01:26:10 -0700
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2007-10-16 09:43:01 -0700
commit75884fb1c6388f3713ddcca662f3647b3129aaeb (patch)
tree7debdd89fd94d099de3d3763b47af00ef6359d9d /include/linux
parent48f13bf3e742fca8aab87f6c39451d03bf5952d4 (diff)
downloadop-kernel-dev-75884fb1c6388f3713ddcca662f3647b3129aaeb.zip
op-kernel-dev-75884fb1c6388f3713ddcca662f3647b3129aaeb.tar.gz
memory unplug: memory hotplug cleanup
A clean up patch for "scanning memory resource [start, end)" operation. Now, find_next_system_ram() function is used in memory hotplug, but this interface is not easy to use and codes are complicated. This patch adds walk_memory_resouce(start,len,arg,func) function. The function 'func' is called per valid memory resouce range in [start,pfn). [pbadari@us.ibm.com: Error handling in walk_memory_resource()] Signed-off-by: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com> Signed-off-by: Badari Pulavarty <pbadari@us.ibm.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'include/linux')
-rw-r--r--include/linux/ioport.h3
-rw-r--r--include/linux/memory_hotplug.h8
2 files changed, 8 insertions, 3 deletions
diff --git a/include/linux/ioport.h b/include/linux/ioport.h
index 71ea9231..6187a85 100644
--- a/include/linux/ioport.h
+++ b/include/linux/ioport.h
@@ -110,9 +110,6 @@ extern int allocate_resource(struct resource *root, struct resource *new,
int adjust_resource(struct resource *res, resource_size_t start,
resource_size_t size);
-/* get registered SYSTEM_RAM resources in specified area */
-extern int find_next_system_ram(struct resource *res);
-
/* Convenience shorthand with allocation */
#define request_region(start,n,name) __request_region(&ioport_resource, (start), (n), (name))
#define request_mem_region(start,n,name) __request_region(&iomem_resource, (start), (n), (name))
diff --git a/include/linux/memory_hotplug.h b/include/linux/memory_hotplug.h
index b573d1e..0a14dad 100644
--- a/include/linux/memory_hotplug.h
+++ b/include/linux/memory_hotplug.h
@@ -63,6 +63,14 @@ extern int online_pages(unsigned long, unsigned long);
extern int __add_pages(struct zone *zone, unsigned long start_pfn,
unsigned long nr_pages);
+/*
+ * Walk thorugh all memory which is registered as resource.
+ * arg is (start_pfn, nr_pages, private_arg_pointer)
+ */
+extern int walk_memory_resource(unsigned long start_pfn,
+ unsigned long nr_pages, void *arg,
+ int (*func)(unsigned long, unsigned long, void *));
+
#ifdef CONFIG_NUMA
extern int memory_add_physaddr_to_nid(u64 start);
#else
OpenPOWER on IntegriCloud