diff options
author | Yasunori Goto <y-goto@jp.fujitsu.com> | 2007-10-16 01:26:14 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-10-16 09:43:02 -0700 |
commit | 98f3cfc1dc7a53b629d43b7844a9b3f786213048 (patch) | |
tree | de98ff0e3c25b01863c31abc0f3054de978b9ef8 /mm/sparse-vmemmap.c | |
parent | 48e94196a533dbee17c252bf80d0310fb8c8c2eb (diff) | |
download | linux-stable-98f3cfc1dc7a53b629d43b7844a9b3f786213048.tar.gz linux-stable-98f3cfc1dc7a53b629d43b7844a9b3f786213048.tar.bz2 linux-stable-98f3cfc1dc7a53b629d43b7844a9b3f786213048.zip |
memory hotplug: Hot-add with sparsemem-vmemmap
This patch is to avoid panic when memory hot-add is executed with
sparsemem-vmemmap. Current vmemmap-sparsemem code doesn't support memory
hot-add. Vmemmap must be populated when hot-add. This is for
2.6.23-rc2-mm2.
Todo: # Even if this patch is applied, the message "[xxxx-xxxx] potential
offnode page_structs" is displayed. To allocate memmap on its node,
memmap (and pgdat) must be initialized itself like chicken and
egg relationship.
# vmemmap_unpopulate will be necessary for followings.
- For cancel hot-add due to error.
- For unplug.
Signed-off-by: Yasunori Goto <y-goto@jp.fujitsu.com>
Cc: Andy Whitcroft <apw@shadowen.org>
Cc: Christoph Lameter <clameter@sgi.com>
Cc: Mel Gorman <mel@csn.ul.ie>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'mm/sparse-vmemmap.c')
-rw-r--r-- | mm/sparse-vmemmap.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/mm/sparse-vmemmap.c b/mm/sparse-vmemmap.c index 4f2d4854f840..d3b718b0c20a 100644 --- a/mm/sparse-vmemmap.c +++ b/mm/sparse-vmemmap.c @@ -137,7 +137,7 @@ int __meminit vmemmap_populate_basepages(struct page *start_page, return 0; } -struct page __init *sparse_early_mem_map_populate(unsigned long pnum, int nid) +struct page * __meminit sparse_mem_map_populate(unsigned long pnum, int nid) { struct page *map = pfn_to_page(pnum * PAGES_PER_SECTION); int error = vmemmap_populate(map, PAGES_PER_SECTION, nid); |