|
@@ -133,6 +133,18 @@ int arch_add_memory(int nid, u64 start, u64 size)
|
|
|
|
|
|
return __add_pages(nid, zone, start_pfn, nr_pages);
|
|
return __add_pages(nid, zone, start_pfn, nr_pages);
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+#ifdef CONFIG_MEMORY_HOTREMOVE
|
|
|
|
+int arch_remove_memory(u64 start, u64 size)
|
|
|
|
+{
|
|
|
|
+ unsigned long start_pfn = start >> PAGE_SHIFT;
|
|
|
|
+ unsigned long nr_pages = size >> PAGE_SHIFT;
|
|
|
|
+ struct zone *zone;
|
|
|
|
+
|
|
|
|
+ zone = page_zone(pfn_to_page(start_pfn));
|
|
|
|
+ return __remove_pages(zone, start_pfn, nr_pages);
|
|
|
|
+}
|
|
|
|
+#endif
|
|
#endif /* CONFIG_MEMORY_HOTPLUG */
|
|
#endif /* CONFIG_MEMORY_HOTPLUG */
|
|
|
|
|
|
/*
|
|
/*
|