From: Christoph Lameter This deals with swap prefetch and various things changed in mm. Signed-off-by: Christoph Lameter Signed-off-by: Andrew Morton --- mm/page_alloc.c | 3 ++- 1 files changed, 2 insertions(+), 1 deletion(-) diff -puN mm/page_alloc.c~use-zvc-for-free_pages-fix-3 mm/page_alloc.c --- a/mm/page_alloc.c~use-zvc-for-free_pages-fix-3 +++ a/mm/page_alloc.c @@ -1522,7 +1522,8 @@ void si_meminfo_node(struct sysinfo *val val->freeram = node_page_state(nid, NR_FREE_PAGES); #ifdef CONFIG_HIGHMEM val->totalhigh = pgdat->node_zones[ZONE_HIGHMEM].present_pages; - val->freehigh = pgdat->node_zones[ZONE_HIGHMEM].free_pages; + val->freehigh = zone_page_state(&pgdat->node_zones[ZONE_HIGHMEM], + NR_FREE_PAGES); #else val->totalhigh = 0; val->freehigh = 0; _