[IA64] Simple memory hot-add for ia64.
First step to memory hotplug for ia64 (add only, all new memory is added to node 0, does not use ZONE_EASY_RECLAIM yet). Signed-off-by: Yasunori Goto <y-goto@jp.fujitsu.com> Signed-off-by: Tony Luck <tony.luck@intel.com>
This commit is contained in:
parent
4a8e4a270b
commit
1681b8e158
|
@ -635,3 +635,39 @@ mem_init (void)
|
||||||
ia32_mem_init();
|
ia32_mem_init();
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef CONFIG_MEMORY_HOTPLUG
|
||||||
|
void online_page(struct page *page)
|
||||||
|
{
|
||||||
|
ClearPageReserved(page);
|
||||||
|
set_page_count(page, 1);
|
||||||
|
__free_page(page);
|
||||||
|
totalram_pages++;
|
||||||
|
num_physpages++;
|
||||||
|
}
|
||||||
|
|
||||||
|
int add_memory(u64 start, u64 size)
|
||||||
|
{
|
||||||
|
pg_data_t *pgdat;
|
||||||
|
struct zone *zone;
|
||||||
|
unsigned long start_pfn = start >> PAGE_SHIFT;
|
||||||
|
unsigned long nr_pages = size >> PAGE_SHIFT;
|
||||||
|
int ret;
|
||||||
|
|
||||||
|
pgdat = NODE_DATA(0);
|
||||||
|
|
||||||
|
zone = pgdat->node_zones + ZONE_NORMAL;
|
||||||
|
ret = __add_pages(zone, start_pfn, nr_pages);
|
||||||
|
|
||||||
|
if (ret)
|
||||||
|
printk("%s: Problem encountered in __add_pages() as ret=%d\n",
|
||||||
|
__FUNCTION__, ret);
|
||||||
|
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
int remove_memory(u64 start, u64 size)
|
||||||
|
{
|
||||||
|
return -EINVAL;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
Loading…
Reference in New Issue