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. :)


Reply via email to