forked from Minki/linux
mm/memory_hotplug: export generic_online_page()
Patch series "mm/memory_hotplug: Export generic_online_page()". Let's replace the __online_page...() functions by generic_online_page(). Hyper-V only wants to delay the actual onlining of un-backed pages, so we can simpy re-use the generic function. This patch (of 3): Let's expose generic_online_page() so online_page_callback users can simply fall back to the generic implementation when actually deciding to online the pages. Link: http://lkml.kernel.org/r/20190909114830.662-2-david@redhat.com Signed-off-by: David Hildenbrand <david@redhat.com> Acked-by: Michal Hocko <mhocko@suse.com> Cc: Oscar Salvador <osalvador@suse.com> Cc: Pavel Tatashin <pasha.tatashin@soleen.com> Cc: Dan Williams <dan.j.williams@intel.com> Cc: Wei Yang <richard.weiyang@gmail.com> Cc: Qian Cai <cai@lca.pw> Cc: Haiyang Zhang <haiyangz@microsoft.com> Cc: "K. Y. Srinivasan" <kys@microsoft.com> Cc: Sasha Levin <sashal@kernel.org> Cc: Stephen Hemminger <sthemmin@microsoft.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
dca4436d1c
commit
18db149120
@ -102,6 +102,7 @@ extern unsigned long __offline_isolated_pages(unsigned long start_pfn,
|
||||
|
||||
typedef void (*online_page_callback_t)(struct page *page, unsigned int order);
|
||||
|
||||
extern void generic_online_page(struct page *page, unsigned int order);
|
||||
extern int set_online_page_callback(online_page_callback_t callback);
|
||||
extern int restore_online_page_callback(online_page_callback_t callback);
|
||||
|
||||
|
@ -49,8 +49,6 @@
|
||||
* and restore_online_page_callback() for generic callback restore.
|
||||
*/
|
||||
|
||||
static void generic_online_page(struct page *page, unsigned int order);
|
||||
|
||||
static online_page_callback_t online_page_callback = generic_online_page;
|
||||
static DEFINE_MUTEX(online_page_callback_lock);
|
||||
|
||||
@ -617,7 +615,7 @@ void __online_page_free(struct page *page)
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(__online_page_free);
|
||||
|
||||
static void generic_online_page(struct page *page, unsigned int order)
|
||||
void generic_online_page(struct page *page, unsigned int order)
|
||||
{
|
||||
kernel_map_pages(page, 1 << order, 1);
|
||||
__free_pages_core(page, order);
|
||||
@ -627,6 +625,7 @@ static void generic_online_page(struct page *page, unsigned int order)
|
||||
totalhigh_pages_add(1UL << order);
|
||||
#endif
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(generic_online_page);
|
||||
|
||||
static int online_pages_range(unsigned long start_pfn, unsigned long nr_pages,
|
||||
void *arg)
|
||||
|
Loading…
Reference in New Issue
Block a user