/* * linux/mm/memory_hotplug.c * * Copyright (C) */#include<linux/stddef.h>#include<linux/mm.h>#include<linux/swap.h>#include<linux/interrupt.h>#include<linux/pagemap.h>#include<linux/bootmem.h>#include<linux/compiler.h>#include<linux/export.h>#include<linux/pagevec.h>#include<linux/writeback.h>#include<linux/slab.h>#include<linux/sysctl.h>#include<linux/cpu.h>#include<linux/memory.h>#include<linux/memory_hotplug.h>#include<linux/highmem.h>#include<linux/vmalloc.h>#include<linux/ioport.h>#include<linux/delay.h>#include<linux/migrate.h>#include<linux/page-isolation.h>#include<linux/pfn.h>#include<linux/suspend.h>#include<linux/mm_inline.h>#include<linux/firmware-map.h>#include<asm/tlbflush.h>#include"internal.h"/* * online_page_callback contains pointer to current page onlining function. * Initially it is generic_online_page(). If it is required it could be * changed by calling set_online_page_callback() for callback registration * and restore_online_page_callback() for generic callback restore. */staticvoidgeneric_online_page(structpage*pag