aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/memory_hotplug.h
diff options
context:
space:
mode:
authorKAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>2007-10-16 04:26:14 -0400
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2007-10-16 12:43:02 -0400
commit48e94196a533dbee17c252bf80d0310fb8c8c2eb (patch)
tree9b29060b0e2600dc7da645fd436dc94c25d1fb36 /include/linux/memory_hotplug.h
parentde33b821f34dc9e2fabf81a8ba464f3ef039bd00 (diff)
fix memory hot remove not configured case.
Now, arch dependent code around CONFIG_MEMORY_HOTREMOVE is a mess. This patch cleans up them. This is against 2.6.23-rc6-mm1. - fix compile failure on ia64/ CONFIG_MEMORY_HOTPLUG && !CONFIG_MEMORY_HOTREMOVE case. - For !CONFIG_MEMORY_HOTREMOVE, add generic no-op remove_memory(), which returns -EINVAL. - removed remove_pages() only used in powerpc. - removed no-op remove_memory() in i386, sh, sparc64, x86_64. - only powerpc returns -ENOSYS at memory hot remove(no-op). changes it to return -EINVAL. Note: Currently, only ia64 supports CONFIG_MEMORY_HOTREMOVE. I welcome other archs if there are requirements and testers. Signed-off-by: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'include/linux/memory_hotplug.h')
-rw-r--r--include/linux/memory_hotplug.h12
1 files changed, 2 insertions, 10 deletions
diff --git a/include/linux/memory_hotplug.h b/include/linux/memory_hotplug.h
index 665951ef0390..8fee7a45736b 100644
--- a/include/linux/memory_hotplug.h
+++ b/include/linux/memory_hotplug.h
@@ -58,10 +58,9 @@ extern int add_one_highpage(struct page *page, int pfn, int bad_ppro);
58extern void online_page(struct page *page); 58extern void online_page(struct page *page);
59/* VM interface that may be used by firmware interface */ 59/* VM interface that may be used by firmware interface */
60extern int online_pages(unsigned long, unsigned long); 60extern int online_pages(unsigned long, unsigned long);
61#ifdef CONFIG_MEMORY_HOTREMOVE
62extern int offline_pages(unsigned long, unsigned long, unsigned long);
63extern void __offline_isolated_pages(unsigned long, unsigned long); 61extern void __offline_isolated_pages(unsigned long, unsigned long);
64#endif 62extern int offline_pages(unsigned long, unsigned long, unsigned long);
63
65/* reasonably generic interface to expand the physical pages in a zone */ 64/* reasonably generic interface to expand the physical pages in a zone */
66extern int __add_pages(struct zone *zone, unsigned long start_pfn, 65extern int __add_pages(struct zone *zone, unsigned long start_pfn,
67 unsigned long nr_pages); 66 unsigned long nr_pages);
@@ -171,13 +170,6 @@ static inline int mhp_notimplemented(const char *func)
171} 170}
172 171
173#endif /* ! CONFIG_MEMORY_HOTPLUG */ 172#endif /* ! CONFIG_MEMORY_HOTPLUG */
174static inline int __remove_pages(struct zone *zone, unsigned long start_pfn,
175 unsigned long nr_pages)
176{
177 printk(KERN_WARNING "%s() called, not yet supported\n", __FUNCTION__);
178 dump_stack();
179 return -ENOSYS;
180}
181 173
182extern int add_memory(int nid, u64 start, u64 size); 174extern int add_memory(int nid, u64 start, u64 size);
183extern int arch_add_memory(int nid, u64 start, u64 size); 175extern int arch_add_memory(int nid, u64 start, u64 size);