[PATCH] mm/page_alloc: fix the range check for backward merging

From: Kazuhisa Ichikawa
Date: Sun Jan 03 2010 - 07:27:49 EST


From: Kazuhisa Ichikawa <ki@xxxxxxxxxxx>

The current check for 'backward merging' within add_active_range()
does not seem correct. start_pfn must be compared against
early_node_map[i].start_pfn (and NOT against .end_pfn) to find out
whether the new region is backward-mergeable with the existing range.

Signed-off-by: Kazuhisa Ichikawa <ki@xxxxxxxxxxx>
---
(This patch applies to linux-2.6.33-rc2)

--- a/mm/page_alloc.c 2009-12-25 06:09:41.000000000 +0900
+++ b/mm/page_alloc.c 2010-01-03 19:20:36.000000000 +0900
@@ -3998,7 +3998,7 @@ void __init add_active_range(unsigned in
}

/* Merge backward if suitable */
- if (start_pfn < early_node_map[i].end_pfn &&
+ if (start_pfn < early_node_map[i].start_pfn &&
end_pfn >= early_node_map[i].start_pfn) {
early_node_map[i].start_pfn = start_pfn;
return;
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/