diff --git a/mm/page_alloc.c b/mm/page_alloc.c
index 136a547262a0badb41bb7cce60ab4e7e91dcb301..3a58221f4c224d43464f69f6eaf133a9e71e9974 100644
--- a/mm/page_alloc.c
+++ b/mm/page_alloc.c
@@ -867,9 +867,8 @@ static int move_freepages(struct zone *zone,
 		}
 
 		order = page_order(page);
-		list_del(&page->lru);
-		list_add(&page->lru,
-			&zone->free_area[order].free_list[migratetype]);
+		list_move(&page->lru,
+			  &zone->free_area[order].free_list[migratetype]);
 		page += 1 << order;
 		pages_moved += 1 << order;
 	}