forked from Minki/linux
memory hotplug: small fixes to bootmem freeing for memory hotremove
- Change some naming * Magic -> types * MIX_INFO -> MIX_SECTION_INFO * Change definition of bootmem type from direct hex value - __free_pages_bootmem() becomes __meminit. Signed-off-by: Yasunori Goto <y-goto@jp.fujitsu.com> Cc: Andy Whitcroft <apw@shadowen.org> Cc: Badari Pulavarty <pbadari@us.ibm.com> Cc: Yinghai Lu <yhlu.kernel@gmail.com> Cc: Johannes Weiner <hannes@saeurebad.de> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
48c906823f
commit
af370fb8cb
@ -13,12 +13,12 @@ struct mem_section;
|
||||
#ifdef CONFIG_MEMORY_HOTPLUG
|
||||
|
||||
/*
|
||||
* Magic number for free bootmem.
|
||||
* Types for free bootmem.
|
||||
* The normal smallest mapcount is -1. Here is smaller value than it.
|
||||
*/
|
||||
#define SECTION_INFO 0xfffffffe
|
||||
#define MIX_INFO 0xfffffffd
|
||||
#define NODE_INFO 0xfffffffc
|
||||
#define SECTION_INFO (-1 - 1)
|
||||
#define MIX_SECTION_INFO (-1 - 2)
|
||||
#define NODE_INFO (-1 - 3)
|
||||
|
||||
/*
|
||||
* pgdat resizing functions
|
||||
|
@ -62,9 +62,9 @@ static void release_memory_resource(struct resource *res)
|
||||
|
||||
#ifdef CONFIG_MEMORY_HOTPLUG_SPARSE
|
||||
#ifndef CONFIG_SPARSEMEM_VMEMMAP
|
||||
static void get_page_bootmem(unsigned long info, struct page *page, int magic)
|
||||
static void get_page_bootmem(unsigned long info, struct page *page, int type)
|
||||
{
|
||||
atomic_set(&page->_mapcount, magic);
|
||||
atomic_set(&page->_mapcount, type);
|
||||
SetPagePrivate(page);
|
||||
set_page_private(page, info);
|
||||
atomic_inc(&page->_count);
|
||||
@ -72,10 +72,10 @@ static void get_page_bootmem(unsigned long info, struct page *page, int magic)
|
||||
|
||||
void put_page_bootmem(struct page *page)
|
||||
{
|
||||
int magic;
|
||||
int type;
|
||||
|
||||
magic = atomic_read(&page->_mapcount);
|
||||
BUG_ON(magic >= -1);
|
||||
type = atomic_read(&page->_mapcount);
|
||||
BUG_ON(type >= -1);
|
||||
|
||||
if (atomic_dec_return(&page->_count) == 1) {
|
||||
ClearPagePrivate(page);
|
||||
@ -119,7 +119,7 @@ static void register_page_bootmem_info_section(unsigned long start_pfn)
|
||||
mapsize = PAGE_ALIGN(usemap_size()) >> PAGE_SHIFT;
|
||||
|
||||
for (i = 0; i < mapsize; i++, page++)
|
||||
get_page_bootmem(section_nr, page, MIX_INFO);
|
||||
get_page_bootmem(section_nr, page, MIX_SECTION_INFO);
|
||||
|
||||
}
|
||||
|
||||
|
@ -533,7 +533,7 @@ static void __free_pages_ok(struct page *page, unsigned int order)
|
||||
/*
|
||||
* permit the bootmem allocator to evade page validation on high-order frees
|
||||
*/
|
||||
void __free_pages_bootmem(struct page *page, unsigned int order)
|
||||
void __meminit __free_pages_bootmem(struct page *page, unsigned int order)
|
||||
{
|
||||
if (order == 0) {
|
||||
__ClearPageReserved(page);
|
||||
|
Loading…
Reference in New Issue
Block a user