--- 25-akpm/arch/sh/mm/hugetlbpage.c | 10 ++++------ 1 files changed, 4 insertions(+), 6 deletions(-) diff -puN arch/sh/mm/hugetlbpage.c~hugetlb-stop-using-page-list-sh arch/sh/mm/hugetlbpage.c --- 25/arch/sh/mm/hugetlbpage.c~hugetlb-stop-using-page-list-sh 2004-03-23 02:35:50.267820032 -0800 +++ 25-akpm/arch/sh/mm/hugetlbpage.c 2004-03-23 02:37:21.294981800 -0800 @@ -33,7 +33,7 @@ static spinlock_t htlbpage_lock = SPIN_L static void enqueue_huge_page(struct page *page) { - list_add(&page->list, + list_add(&page->lru, &hugepage_freelists[page_zone(page)->zone_pgdat->node_id]); } @@ -51,7 +51,7 @@ static struct page *dequeue_huge_page(vo !list_empty(&hugepage_freelists[nid])) { page = list_entry(hugepage_freelists[nid].next, struct page, list); - list_del(&page->list); + list_del(&page->lru); } return page; } @@ -254,8 +254,6 @@ static void free_huge_page(struct page * BUG_ON(page_count(page)); BUG_ON(page->mapping); - INIT_LIST_HEAD(&page->list); - spin_lock(&htlbpage_lock); enqueue_huge_page(page); htlbpagemem++; @@ -388,7 +386,7 @@ static int try_to_free_low(int count) /* all lowmem is on node 0 */ list_for_each(p, &hugepage_freelists[0]) { if (map) { - list_del(&map->list); + list_del(&map->lru); update_and_free_page(map); htlbpagemem--; map = NULL; @@ -400,7 +398,7 @@ static int try_to_free_low(int count) map = page; } if (map) { - list_del(&map->list); + list_del(&map->lru); update_and_free_page(map); htlbpagemem--; count++; _