diff -upN reference/kernel/kexec.c current/kernel/kexec.c --- reference/kernel/kexec.c Wed Jun 16 16:08:24 2004 +++ current/kernel/kexec.c Thu Jun 17 12:58:30 2004 @@ -191,7 +191,6 @@ static int identity_map_pages(struct pag vma->vm_page_prot = protection_map[vma->vm_flags & 0xf]; vma->vm_file = NULL; vma->vm_private_data = NULL; - INIT_LIST_HEAD(&vma->shared); insert_vm_struct(mm, vma); error = remap_page_range(vma, vma->vm_start, vma->vm_start, @@ -241,7 +240,7 @@ struct page *kimage_alloc_reboot_code_pa addr = page_to_pfn(pages) << PAGE_SHIFT; if ((page_to_pfn(pages) >= (TASK_SIZE >> PAGE_SHIFT)) || kimage_is_destination_range(image, addr, addr + KEXEC_REBOOT_CODE_SIZE)) { - list_add(&pages->list, &extra_pages); + list_add(&pages->lru, &extra_pages); pages = 0; } } while(!pages); @@ -249,7 +248,7 @@ struct page *kimage_alloc_reboot_code_pa int result; result = identity_map_pages(pages, order); if (result < 0) { - list_add(&pages->list, &extra_pages); + list_add(&pages->lru, &extra_pages); pages = 0; } } @@ -261,7 +260,7 @@ struct page *kimage_alloc_reboot_code_pa list_for_each_safe(pos, next, &extra_pages) { struct page *page; int i; - page = list_entry(pos, struct page, list); + page = list_entry(pos, struct page, lru); for(i = 0; i < count; i++) { ClearPageReserved(pages +i); } @@ -326,16 +325,16 @@ static void kimage_free_extra_pages(stru struct list_head *pos, *next; list_for_each_safe(pos, next, &image->dest_pages) { struct page *page; - page = list_entry(pos, struct page, list); - list_del(&page->list); + page = list_entry(pos, struct page, lru); + list_del(&page->lru); ClearPageReserved(page); __free_page(page); } /* Walk through and free any unuseable pages I have cached */ list_for_each_safe(pos, next, &image->unuseable_pages) { struct page *page; - page = list_entry(pos, struct page, list); - list_del(&page->list); + page = list_entry(pos, struct page, lru); + list_del(&page->lru); ClearPageReserved(page); __free_page(page); } @@ -436,10 +435,10 @@ static struct page *kimage_alloc_page(st /* Walk through the list of destination pages, and see if I * have a match. */ - list_for_each_entry(page, &image->dest_pages, list) { + list_for_each_entry(page, &image->dest_pages, lru) { addr = page_to_pfn(page) << PAGE_SHIFT; if (addr == destination) { - list_del(&page->list); + list_del(&page->lru); return page; } } @@ -454,7 +453,7 @@ static struct page *kimage_alloc_page(st SetPageReserved(page); /* If the page cannot be used file it away */ if (page_to_pfn(page) > (KEXEC_SOURCE_MEMORY_LIMIT >> PAGE_SHIFT)) { - list_add(&page->list, &image->unuseable_pages); + list_add(&page->lru, &image->unuseable_pages); continue; } addr = page_to_pfn(page) << PAGE_SHIFT; @@ -493,7 +492,7 @@ static struct page *kimage_alloc_page(st /* Place the page on the destination list I * will use it later. */ - list_add(&page->list, &image->dest_pages); + list_add(&page->lru, &image->dest_pages); } } return page;