On Thu, 2005-03-10 at 07:26 -0800, Martin J. Bligh wrote:
> > mem_map = zone_table[ZONE_DMA]->zone_mem_map;
> ...
> > Something that may not be intuitively obvious to someone with i386 biases
> > is that on PA-RISC (at least in the case of CONFIG_DISCONTIGMEM=n), all
> > memory is in ZONE_DMA. Does that help divine what the right answer is
> > for parisc?
>
> In which case, you should be fine, you should have
>
> NODE_DATA(0)->node_mem_map == zone_table[ZONE_DMA]->zone_mem_map
>
> I believe. In free_area_init_core(), we do:
>
> zone->zone_mem_map = pfn_to_page(zone_start_pfn);
>
> So as long as zone_start_pfn == node_start_pfn, they're equiv. As you say
> all your mem is in ZONE_DMA, that should be true.
Now that I look at it again, mem_init() happens way after
paging_init()->free_area_init_node()->alloc_node_mem_map(). So, mem_map
should already be initialized by the time mem_init() gets called. It
should be safe to just remove the
mem_map = zone_table[ZONE_DMA]->zone_mem_map;
line in mem_init().
Now that I have your attention, could you stick a printk in there, and
double check that I'm right?
-- Dave
P.S. I do a lot of ppc64 work, too, so I have a bias for that as
well. :)