From 1a402635ddf46c27ecde052a3b87498e2778b36b Mon Sep 17 00:00:00 2001 From: Paul Mundt Date: Fri, 5 Sep 2008 15:39:12 +0900 Subject: [PATCH] --- yaml --- r: 116087 b: refs/heads/master c: 3159e7d62ad13f71ef3fe029c145594d8caa580d h: refs/heads/master i: 116085: abf03d1b8d5cd8260d072b4054b5574c97e9d284 116083: 02233753b64334d0c6e956625e3b7455caad162e 116079: 8b7dd03007956aedb66fd21444d0b889d10ff6dd v: v3 --- [refs] | 2 +- trunk/arch/sh/mm/Kconfig | 4 ++++ trunk/arch/sh/mm/init.c | 17 +++++++++++++++++ 3 files changed, 22 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index dd54b22025ef..63c73f8e2852 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 5840263ecb95e55a2d248fc740644a2c9171a61c +refs/heads/master: 3159e7d62ad13f71ef3fe029c145594d8caa580d diff --git a/trunk/arch/sh/mm/Kconfig b/trunk/arch/sh/mm/Kconfig index 8a03926ea84f..f8e6dc5e056f 100644 --- a/trunk/arch/sh/mm/Kconfig +++ b/trunk/arch/sh/mm/Kconfig @@ -134,6 +134,10 @@ config ARCH_ENABLE_MEMORY_HOTPLUG def_bool y depends on SPARSEMEM +config ARCH_ENABLE_MEMORY_HOTREMOVE + def_bool y + depends on SPARSEMEM + config ARCH_MEMORY_PROBE def_bool y depends on MEMORY_HOTPLUG diff --git a/trunk/arch/sh/mm/init.c b/trunk/arch/sh/mm/init.c index b75a7acd62fb..d4681a55c852 100644 --- a/trunk/arch/sh/mm/init.c +++ b/trunk/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 */