Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 1681b8e1 authored by Yasunori Goto's avatar Yasunori Goto Committed by Tony Luck
Browse files

[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: default avatarYasunori Goto <y-goto@jp.fujitsu.com>
Signed-off-by: default avatarTony Luck <tony.luck@intel.com>
parent 4a8e4a27
Loading
Loading
Loading
Loading
+36 −0
Original line number Diff line number Diff line
@@ -635,3 +635,39 @@ mem_init (void)
	ia32_mem_init();
#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