diff --git a/include/linux/memory_hotplug.h b/include/linux/memory_hotplug.h index 5f71bfd6d66..4473d699c5e 100644 --- a/include/linux/memory_hotplug.h +++ b/include/linux/memory_hotplug.h @@ -11,6 +11,9 @@ struct zone; struct pglist_data; struct mem_section; +extern unsigned long movable_reserved_start, movable_reserved_size; +extern unsigned long low_power_memory_start, low_power_memory_size; + #ifdef CONFIG_MEMORY_HOTPLUG /* @@ -245,3 +248,5 @@ extern int physical_remove_memory(u64 start, u64 size); extern int arch_physical_remove_memory(u64 start, u64 size); extern int physical_low_power_memory(u64 start, u64 size); extern int arch_physical_low_power_memory(u64 start, u64 size); +extern int physical_active_memory(u64 start, u64 size); +extern int arch_physical_active_memory(u64 start, u64 size); diff --git a/mm/memory_hotplug.c b/mm/memory_hotplug.c index b633ab01d47..7bd35716223 100644 --- a/mm/memory_hotplug.c +++ b/mm/memory_hotplug.c @@ -684,7 +684,6 @@ int __ref physical_remove_memory(u64 start, u64 size) res = kzalloc(sizeof(struct resource), GFP_KERNEL); BUG_ON(!res); - /* call arch's memory hotremove */ ret = arch_physical_remove_memory(start, size); if (ret) { kfree(res); @@ -705,11 +704,19 @@ int __ref physical_remove_memory(u64 start, u64 size) } EXPORT_SYMBOL_GPL(physical_remove_memory); +int __ref physical_active_memory(u64 start, u64 size) +{ + int ret; + + ret = arch_physical_active_memory(start, size); + return ret; +} +EXPORT_SYMBOL_GPL(physical_active_memory); + int __ref physical_low_power_memory(u64 start, u64 size) { int ret; - /* call arch's memory low power routine */ ret = arch_physical_low_power_memory(start, size); return ret; }