> Everyone OK with this? Makes sense to me at least, if it works OK.
> From: Dave Hansen <[EMAIL PROTECTED]> > > So, this patch started out with me trying to keep from passing contiguous, > node-specific mem_map into free_area_init_node() and cousins. Instead, I > relied on some calls to pfn_to_page(). > > This works fine and dandy when all you need is the pgdat->node_mem_map to > do pfn_to_page(). However, the non-NUMA/DISCONTIG architectures use the > real, global mem_map[] instead of a node_mem_map in the pfn_to_page() > calculation. So, I ended up effectively trying to initialize mem_map from > itself, when it was NULL. That was bad, and caused some very pretty colors > on someone's screen when he tested it. > > So, I had to make sure to initialize the global mem_map[] before calling > into free_area_init_node(). Then, I realized how many architectures do > this on their own, and have comments like this: > > /* XXX: MRB-remove - this doesn't seem sane, should this be done > somewhere else ?*/ > mem_map = NODE_DATA(0)->node_mem_map; > > The following patch does what my first one did (don't pass mem_map into the > init functions), incorporates Jesse Barnes' ia64 fixes on top of that, and > gets rid of all but one of the global mem_map initializations (parisc is > weird). It also magically removes more code than it adds. It could be > smaller, but I shamelessly added some comments.
