Atsushi Nemoto wrote: > On Wed, 05 Jul 2006 15:58:52 +0200, Franck Bui-Huu <vagabon.xyz@xxxxxxxxx> wrote: >> BTW why using __pa(OFFSET) ? isn't it going to yield always into 0 ? >> At least on MIPS, it's defined as >> >> #define __pa(x) ((unsigned long) (x) - PAGE_OFFSET) >> >> why not using ARCH_PFN_OFFSET instead ? > > Indeed. I copied the code from free_area_init(). I think 0 is enough > for MIPS. Patch revised. Thank you for comments. > > Ok thinking more about it, some platforms may have physical memory that doesn't start at 0. MIPS doesn't support such platform though it should be fairly easy. In that case __pa should be defined as: #define __pa(x) ((unsigned long) (x) - PAGE_OFFSET + PFN_PHYS(ARCH_PFN_OFFSET)) and use in your patch: free_area_init_node(0, NODE_DATA(0), zones_size, ARCH_PFN_OFFSET, zholes_size); So I would recommend to use ARCH_PFN_OFFSET. Franck