Against rmap12f
free_area_init_core() initializes zone_table[] with no node offset,
and sets the zone of a page using pgdat->nid (uninitialized on entry
to free_area_init_core()) as a node number.
Bug and fix reported by Samuel Ortiz.
Cheers,
Bill
# This is a BitKeeper generated patch for the following project:
# Project Name: Long-term Linux VM development
# This patch format is intended for GNU patch command version 2.5 or higher.
# This patch includes the following deltas:
# ChangeSet 1.198 ->
# mm/page_alloc.c 1.58 -> 1.59
#
# The following is the BitKeeper ChangeSet Log
# --------------------------------------------
# 02/02/14 wli@holomorphy.com 1.199
# Fix zone_table[] initialization bugs where zone_table uses either no node offset
# for the index or an uninitialized field of pgdat as a node number.
# --------------------------------------------
#
diff -Nru a/mm/page_alloc.c b/mm/page_alloc.c
--- a/mm/page_alloc.c Thu Feb 14 17:51:19 2002
+++ b/mm/page_alloc.c Thu Feb 14 17:51:19 2002
@@ -897,7 +897,7 @@
unsigned long mask, extrafree = 0;
unsigned long size, realsize;
- zone_table[j] = zone;
+ zone_table[nid * MAX_NR_ZONES + j] = zone;
realsize = size = zones_size[j];
if (zholes_size)
realsize -= zholes_size[j];
@@ -982,7 +982,7 @@
*/
for (i = 0; i < size; i++) {
struct page *page = mem_map + offset + i;
- set_page_zone(page, pgdat->node_id * MAX_NR_ZONES + j);
+ set_page_zone(page, nid * MAX_NR_ZONES + j);
init_page_count(page);
__SetPageReserved(page);
memlist_init(&page->list);
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
This archive was generated by hypermail 2b29 : Fri Feb 15 2002 - 21:01:05 EST