diff -urN linux-2.6.19.2.orig/mm/page_alloc.c linux-2.6.19.2/mm/page_alloc.c
--- linux-2.6.19.2.orig/mm/page_alloc.c	2007-05-20 03:26:41.000000000 +0200
+++ linux-2.6.19.2/mm/page_alloc.c	2007-05-20 03:28:22.000000000 +0200
@@ -1200,7 +1200,7 @@
 unsigned int nr_free_pages(void)
 {
 	unsigned int sum = 0;
-	struct zone *zone;
+	volatile struct zone *zone;
 
 	for_each_zone(zone)
 		sum += zone->free_pages;
