diff options
author | KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com> | 2007-10-16 04:26:10 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-10-16 12:43:01 -0400 |
commit | 75884fb1c6388f3713ddcca662f3647b3129aaeb (patch) | |
tree | 7debdd89fd94d099de3d3763b47af00ef6359d9d /include/linux | |
parent | 48f13bf3e742fca8aab87f6c39451d03bf5952d4 (diff) |
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.h | 3 | ||||
-rw-r--r-- | include/linux/memory_hotplug.h | 8 |
2 files changed, 8 insertions, 3 deletions
diff --git a/include/linux/ioport.h b/include/linux/ioport.h index 71ea92319241..6187a8567bc7 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, | |||
110 | int adjust_resource(struct resource *res, resource_size_t start, | 110 | int adjust_resource(struct resource *res, resource_size_t start, |
111 | resource_size_t size); | 111 | resource_size_t size); |
112 | 112 | ||
113 | /* get registered SYSTEM_RAM resources in specified area */ | ||
114 | extern int find_next_system_ram(struct resource *res); | ||
115 | |||
116 | /* Convenience shorthand with allocation */ | 113 | /* Convenience shorthand with allocation */ |
117 | #define request_region(start,n,name) __request_region(&ioport_resource, (start), (n), (name)) | 114 | #define request_region(start,n,name) __request_region(&ioport_resource, (start), (n), (name)) |
118 | #define request_mem_region(start,n,name) __request_region(&iomem_resource, (start), (n), (name)) | 115 | #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 b573d1ec871f..0a14dad95453 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); | |||
63 | extern int __add_pages(struct zone *zone, unsigned long start_pfn, | 63 | extern int __add_pages(struct zone *zone, unsigned long start_pfn, |
64 | unsigned long nr_pages); | 64 | unsigned long nr_pages); |
65 | 65 | ||
66 | /* | ||
67 | * Walk thorugh all memory which is registered as resource. | ||
68 | * arg is (start_pfn, nr_pages, private_arg_pointer) | ||
69 | */ | ||
70 | extern int walk_memory_resource(unsigned long start_pfn, | ||
71 | unsigned long nr_pages, void *arg, | ||
72 | int (*func)(unsigned long, unsigned long, void *)); | ||
73 | |||
66 | #ifdef CONFIG_NUMA | 74 | #ifdef CONFIG_NUMA |
67 | extern int memory_add_physaddr_to_nid(u64 start); | 75 | extern int memory_add_physaddr_to_nid(u64 start); |
68 | #else | 76 | #else |