From 9ee50090441581ad7fda6f78f49c04e250408bf8 Mon Sep 17 00:00:00 2001 From: Adam Litke Date: Tue, 2 Sep 2008 14:35:38 -0700 Subject: [PATCH] --- yaml --- r: 109403 b: refs/heads/master c: 344c790e3821dac37eb742ddd0b611a300f78b9a h: refs/heads/master i: 109401: 46247bb88d04de97a72f7ed80a9f64a712dd5a56 109399: 0ee4c3080a56ee5db80b0f65412a7fd09bdb5263 v: v3 --- [refs] | 2 +- trunk/mm/page_alloc.c | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index d26d85f78b6a..71b6c810f68e 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 169ccbd44eb20f5bb7e4352451eba25397e29749 +refs/heads/master: 344c790e3821dac37eb742ddd0b611a300f78b9a diff --git a/trunk/mm/page_alloc.c b/trunk/mm/page_alloc.c index af982f7cdb2a..feb791648a1f 100644 --- a/trunk/mm/page_alloc.c +++ b/trunk/mm/page_alloc.c @@ -694,6 +694,9 @@ static int move_freepages(struct zone *zone, #endif for (page = start_page; page <= end_page;) { + /* Make sure we are not inadvertently changing nodes */ + VM_BUG_ON(page_to_nid(page) != zone_to_nid(zone)); + if (!pfn_valid_within(page_to_pfn(page))) { page++; continue; @@ -2516,6 +2519,10 @@ static void setup_zone_migrate_reserve(struct zone *zone) continue; page = pfn_to_page(pfn); + /* Watch out for overlapping nodes */ + if (page_to_nid(page) != zone_to_nid(zone)) + continue; + /* Blocks with reserved pages will never free, skip them. */ if (PageReserved(page)) continue;