From: "Chen, Kenneth W" <kenneth.w.chen@intel.com>

With list poisoning on by default from linux-2.6.7, it's easier than ever to
trigger the bug in try_to_free_low().  It ought to use the safe version of
list iterater.

Signed-off-by: Ken Chen <kenneth.w.chen@intel.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
---

 25-akpm/mm/hugetlb.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff -puN mm/hugetlb.c~hugetlb-use-safe-iterator mm/hugetlb.c
--- 25/mm/hugetlb.c~hugetlb-use-safe-iterator	Tue Jun 22 15:10:43 2004
+++ 25-akpm/mm/hugetlb.c	Tue Jun 22 15:10:43 2004
@@ -134,8 +134,8 @@ static int try_to_free_low(unsigned long
 {
 	int i;
 	for (i = 0; i < MAX_NUMNODES; ++i) {
-		struct page *page;
-		list_for_each_entry(page, &hugepage_freelists[i], lru) {
+		struct page *page, *next;
+		list_for_each_entry_safe(page, next, &hugepage_freelists[i], lru) {
 			if (PageHighMem(page))
 				continue;
 			list_del(&page->lru);
_