I've managed to reproduce the problem, and I heard from you elsewhere
that you've verified the fix (although it appeared to reduce the memory
savings to 4KB).
start_segment_treap() is a macro (operating largely on the same
principle as list_entry()) which converts a treap_node_t * to a struct *
given the field and struct name by computing offsets and casting. The
casting renders this somewhat less than type safe, and the patch below
corrects a type error I committed in calling it (the start_tree field
is already of type treap_node_t *).
Thanks again,
Bill
-----------------
willir@us.ibm.com
diff -urN linux-broken/mm/bootmem.c linux-bootmem/mm/bootmem.c
--- linux-broken/mm/bootmem.c Wed Nov 7 16:31:37 2001
+++ linux-bootmem/mm/bootmem.c Wed Nov 7 16:31:09 2001
@@ -860,7 +860,7 @@
while(pgdat) {
unsigned in_node;
- tree = start_segment_treap(&pgdat->bdata->segment_tree.start_tree);
+ tree = start_segment_treap(pgdat->bdata->segment_tree.start_tree);
in_node = segment_tree_intersects(tree, &segment);
in_any_node |= in_node;
-
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/