sh: Add support for memory hot-remove.
authorPaul Mundt <lethal@linux-sh.org>
Fri, 5 Sep 2008 06:39:12 +0000 (15:39 +0900)
committerPaul Mundt <lethal@linux-sh.org>
Mon, 8 Sep 2008 01:35:04 +0000 (10:35 +0900)
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
arch/sh/mm/Kconfig
arch/sh/mm/init.c

index 8a03926ea84f21076c96b2775b49e4d27c7b0caf..f8e6dc5e056ff37e69ccf36cebf1bedd7f5bf839 100644 (file)
@@ -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
index b75a7acd62fb7818f8fec20cc72aa7794d0ff159..d4681a55c8523bc7faac34be7342b4bddba04894 100644 (file)
@@ -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 */