diff options
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 82cc576fab15..105794037143 100644 --- a/arch/sh/mm/init.c +++ b/arch/sh/mm/init.c @@ -558,4 +558,21 @@ int memory_add_physaddr_to_nid(u64 addr)  EXPORT_SYMBOL_GPL(memory_add_physaddr_to_nid);  #endif +#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; +	int ret; + +	zone = page_zone(pfn_to_page(start_pfn)); +	ret = __remove_pages(zone, start_pfn, nr_pages); +	if (unlikely(ret)) +		pr_warn("%s: Failed, __remove_pages() == %d\n", __func__, +			ret); + +	return ret; +} +#endif  #endif /* CONFIG_MEMORY_HOTPLUG */  | 
