diff options
author | Paul Mundt <lethal@linux-sh.org> | 2008-09-05 15:39:12 +0900 |
---|---|---|
committer | Paul Mundt <lethal@linux-sh.org> | 2008-09-08 10:35:04 +0900 |
commit | 3159e7d62ad13f71ef3fe029c145594d8caa580d (patch) | |
tree | a05b4b03232480db57fac798a72289f9dfdeeb19 /arch/sh/mm/init.c | |
parent | 5840263ecb95e55a2d248fc740644a2c9171a61c (diff) | |
download | blackbird-op-linux-3159e7d62ad13f71ef3fe029c145594d8caa580d.tar.gz blackbird-op-linux-3159e7d62ad13f71ef3fe029c145594d8caa580d.zip |
sh: Add support for memory hot-remove.
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Diffstat (limited to 'arch/sh/mm/init.c')
-rw-r--r-- | arch/sh/mm/init.c | 17 |
1 files changed, 17 insertions, 0 deletions
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) } EXPORT_SYMBOL_GPL(memory_add_physaddr_to_nid); #endif + +#ifdef CONFIG_MEMORY_HOTREMOVE +int remove_memory(u64 start, u64 size) +{ + unsigned long start_pfn = start >> PAGE_SHIFT; + unsigned long end_pfn = start_pfn + (size >> PAGE_SHIFT); + int ret; + + ret = offline_pages(start_pfn, end_pfn, 120 * HZ); + if (unlikely(ret)) + printk("%s: Failed, offline_pages() == %d\n", __func__, ret); + + return ret; +} +EXPORT_SYMBOL_GPL(remove_memory); #endif + +#endif /* CONFIG_MEMORY_HOTPLUG */ |