Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 356520
b: refs/heads/master
c: 0197518
h: refs/heads/master
v: v3
  • Loading branch information
Tang Chen authored and Linus Torvalds committed Feb 24, 2013
1 parent 257083a commit 1d70e8c
Show file tree
Hide file tree
Showing 9 changed files with 32 additions and 2 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: bbcab8789d4a5b942773aa7496794ceebe2d3f78
refs/heads/master: 0197518cd3672029618a16a57597946a094ac7a8
3 changes: 3 additions & 0 deletions trunk/arch/arm64/mm/mmu.c
Original file line number Diff line number Diff line change
Expand Up @@ -434,4 +434,7 @@ int __meminit vmemmap_populate(struct page *start_page,
return 0;
}
#endif /* CONFIG_ARM64_64K_PAGES */
void vmemmap_free(struct page *memmap, unsigned long nr_pages)
{
}
#endif /* CONFIG_SPARSEMEM_VMEMMAP */
3 changes: 3 additions & 0 deletions trunk/arch/ia64/mm/discontig.c
Original file line number Diff line number Diff line change
Expand Up @@ -823,4 +823,7 @@ int __meminit vmemmap_populate(struct page *start_page,
return vmemmap_populate_basepages(start_page, size, node);
}

void vmemmap_free(struct page *memmap, unsigned long nr_pages)
{
}
#endif
4 changes: 4 additions & 0 deletions trunk/arch/powerpc/mm/init_64.c
Original file line number Diff line number Diff line change
Expand Up @@ -298,5 +298,9 @@ int __meminit vmemmap_populate(struct page *start_page,
return 0;
}

void vmemmap_free(struct page *memmap, unsigned long nr_pages)
{
}

#endif /* CONFIG_SPARSEMEM_VMEMMAP */

4 changes: 4 additions & 0 deletions trunk/arch/s390/mm/vmem.c
Original file line number Diff line number Diff line change
Expand Up @@ -268,6 +268,10 @@ int __meminit vmemmap_populate(struct page *start, unsigned long nr, int node)
return ret;
}

void vmemmap_free(struct page *memmap, unsigned long nr_pages)
{
}

/*
* Add memory segment to the segment list if it doesn't overlap with
* an already present segment.
Expand Down
4 changes: 4 additions & 0 deletions trunk/arch/sparc/mm/init_64.c
Original file line number Diff line number Diff line change
Expand Up @@ -2236,6 +2236,10 @@ void __meminit vmemmap_populate_print_last(void)
}
}

void vmemmap_free(struct page *memmap, unsigned long nr_pages)
{
}

#endif /* CONFIG_SPARSEMEM_VMEMMAP */

static void prot_init_common(unsigned long page_none,
Expand Down
8 changes: 8 additions & 0 deletions trunk/arch/x86/mm/init_64.c
Original file line number Diff line number Diff line change
Expand Up @@ -1011,6 +1011,14 @@ remove_pagetable(unsigned long start, unsigned long end, bool direct)
flush_tlb_all();
}

void __ref vmemmap_free(struct page *memmap, unsigned long nr_pages)
{
unsigned long start = (unsigned long)memmap;
unsigned long end = (unsigned long)(memmap + nr_pages);

remove_pagetable(start, end, false);
}

static void __meminit
kernel_physical_mapping_remove(unsigned long start, unsigned long end)
{
Expand Down
3 changes: 3 additions & 0 deletions trunk/include/linux/mm.h
Original file line number Diff line number Diff line change
Expand Up @@ -1718,6 +1718,9 @@ int vmemmap_populate_basepages(struct page *start_page,
unsigned long pages, int node);
int vmemmap_populate(struct page *start_page, unsigned long pages, int node);
void vmemmap_populate_print_last(void);
#ifdef CONFIG_MEMORY_HOTPLUG
void vmemmap_free(struct page *memmap, unsigned long nr_pages);
#endif
void register_page_bootmem_memmap(unsigned long section_nr, struct page *map,
unsigned long size);

Expand Down
3 changes: 2 additions & 1 deletion trunk/mm/sparse.c
Original file line number Diff line number Diff line change
Expand Up @@ -615,10 +615,11 @@ static inline struct page *kmalloc_section_memmap(unsigned long pnum, int nid,
}
static void __kfree_section_memmap(struct page *memmap, unsigned long nr_pages)
{
return; /* XXX: Not implemented yet */
vmemmap_free(memmap, nr_pages);
}
static void free_map_bootmem(struct page *memmap, unsigned long nr_pages)
{
vmemmap_free(memmap, nr_pages);
}
#else
static struct page *__kmalloc_section_memmap(unsigned long nr_pages)
Expand Down

0 comments on commit 1d70e8c

Please sign in to comment.