/* Record a memory area against a node. */
void __init memory_present(int nid, unsigned long start, unsigned long end)
{
/* Record a memory area against a node. */
void __init memory_present(int nid, unsigned long start, unsigned long end)
{
start &= PAGE_SECTION_MASK;
for (pfn = start; pfn < end; pfn += PAGES_PER_SECTION) {
unsigned long section = pfn_to_section_nr(pfn);
start &= PAGE_SECTION_MASK;
for (pfn = start; pfn < end; pfn += PAGES_PER_SECTION) {
unsigned long section = pfn_to_section_nr(pfn);
* no locking for this, because it does its own
* plus, it does a kmalloc
*/
* no locking for this, because it does its own
* plus, it does a kmalloc
*/
ms->section_mem_map |= SECTION_MARKED_PRESENT;
ret = sparse_init_one_section(ms, section_nr, memmap, usemap);
out:
pgdat_resize_unlock(pgdat, &flags);
ms->section_mem_map |= SECTION_MARKED_PRESENT;
ret = sparse_init_one_section(ms, section_nr, memmap, usemap);
out:
pgdat_resize_unlock(pgdat, &flags);