diff options
author | Paul Mundt <lethal@linux-sh.org> | 2008-09-05 02:39:12 -0400 |
---|---|---|
committer | Paul Mundt <lethal@linux-sh.org> | 2008-09-07 21:35:04 -0400 |
commit | 3159e7d62ad13f71ef3fe029c145594d8caa580d (patch) | |
tree | a05b4b03232480db57fac798a72289f9dfdeeb19 | |
parent | 5840263ecb95e55a2d248fc740644a2c9171a61c (diff) |
sh: Add support for memory hot-remove.
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
-rw-r--r-- | arch/sh/mm/Kconfig | 4 | ||||
-rw-r--r-- | arch/sh/mm/init.c | 17 |
2 files changed, 21 insertions, 0 deletions
diff --git a/arch/sh/mm/Kconfig b/arch/sh/mm/Kconfig index 8a03926ea84f..f8e6dc5e056f 100644 --- a/arch/sh/mm/Kconfig +++ b/arch/sh/mm/Kconfig | |||
@@ -134,6 +134,10 @@ config ARCH_ENABLE_MEMORY_HOTPLUG | |||
134 | def_bool y | 134 | def_bool y |
135 | depends on SPARSEMEM | 135 | depends on SPARSEMEM |
136 | 136 | ||
137 | config ARCH_ENABLE_MEMORY_HOTREMOVE | ||
138 | def_bool y | ||
139 | depends on SPARSEMEM | ||
140 | |||
137 | config ARCH_MEMORY_PROBE | 141 | config ARCH_MEMORY_PROBE |
138 | def_bool y | 142 | def_bool y |
139 | depends on MEMORY_HOTPLUG | 143 | depends on MEMORY_HOTPLUG |
diff --git a/arch/sh/mm/init.c b/arch/sh/mm/init.c index b75a7acd62fb..d4681a55c852 100644 --- a/arch/sh/mm/init.c +++ b/arch/sh/mm/init.c | |||
@@ -292,4 +292,21 @@ int memory_add_physaddr_to_nid(u64 addr) | |||
292 | } | 292 | } |
293 | EXPORT_SYMBOL_GPL(memory_add_physaddr_to_nid); | 293 | EXPORT_SYMBOL_GPL(memory_add_physaddr_to_nid); |
294 | #endif | 294 | #endif |
295 | |||
296 | #ifdef CONFIG_MEMORY_HOTREMOVE | ||
297 | int remove_memory(u64 start, u64 size) | ||
298 | { | ||
299 | unsigned long start_pfn = start >> PAGE_SHIFT; | ||
300 | unsigned long end_pfn = start_pfn + (size >> PAGE_SHIFT); | ||
301 | int ret; | ||
302 | |||
303 | ret = offline_pages(start_pfn, end_pfn, 120 * HZ); | ||
304 | if (unlikely(ret)) | ||
305 | printk("%s: Failed, offline_pages() == %d\n", __func__, ret); | ||
306 | |||
307 | return ret; | ||
308 | } | ||
309 | EXPORT_SYMBOL_GPL(remove_memory); | ||
295 | #endif | 310 | #endif |
311 | |||
312 | #endif /* CONFIG_MEMORY_HOTPLUG */ | ||