|
@@ -179,7 +179,7 @@ static void release_memory_resource(struct resource *res)
|
|
|
void get_page_bootmem(unsigned long info, struct page *page,
|
|
|
unsigned long type)
|
|
|
{
|
|
|
- page->lru.next = (struct list_head *) type;
|
|
|
+ page->freelist = (void *)type;
|
|
|
SetPagePrivate(page);
|
|
|
set_page_private(page, info);
|
|
|
page_ref_inc(page);
|
|
@@ -189,11 +189,12 @@ void put_page_bootmem(struct page *page)
|
|
|
{
|
|
|
unsigned long type;
|
|
|
|
|
|
- type = (unsigned long) page->lru.next;
|
|
|
+ type = (unsigned long) page->freelist;
|
|
|
BUG_ON(type < MEMORY_HOTPLUG_MIN_BOOTMEM_TYPE ||
|
|
|
type > MEMORY_HOTPLUG_MAX_BOOTMEM_TYPE);
|
|
|
|
|
|
if (page_ref_dec_return(page) == 1) {
|
|
|
+ page->freelist = NULL;
|
|
|
ClearPagePrivate(page);
|
|
|
set_page_private(page, 0);
|
|
|
INIT_LIST_HEAD(&page->lru);
|