diff options
author | KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com> | 2007-10-16 04:26:14 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-10-16 12:43:02 -0400 |
commit | 48e94196a533dbee17c252bf80d0310fb8c8c2eb (patch) | |
tree | 9b29060b0e2600dc7da645fd436dc94c25d1fb36 /include/linux/memory_hotplug.h | |
parent | de33b821f34dc9e2fabf81a8ba464f3ef039bd00 (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.h | 12 |
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); | |||
58 | extern void online_page(struct page *page); | 58 | extern 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 */ |
60 | extern int online_pages(unsigned long, unsigned long); | 60 | extern int online_pages(unsigned long, unsigned long); |
61 | #ifdef CONFIG_MEMORY_HOTREMOVE | ||
62 | extern int offline_pages(unsigned long, unsigned long, unsigned long); | ||
63 | extern void __offline_isolated_pages(unsigned long, unsigned long); | 61 | extern void __offline_isolated_pages(unsigned long, unsigned long); |
64 | #endif | 62 | extern 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 */ |
66 | extern int __add_pages(struct zone *zone, unsigned long start_pfn, | 65 | extern 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 */ |
174 | static 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 | ||
182 | extern int add_memory(int nid, u64 start, u64 size); | 174 | extern int add_memory(int nid, u64 start, u64 size); |
183 | extern int arch_add_memory(int nid, u64 start, u64 size); | 175 | extern int arch_add_memory(int nid, u64 start, u64 size); |