Hi, The following patch is an attempt to remove this macro in setup.c. I'm not sure about why sometimes it is used and sometimes it is not. By sending this RFC, I hope to get some feedbacks that will shed some light on this obscure macro... The reason why I'm trying to kick out this macro is that we should rely on __pa() for address convertions instead of having several helpers that do the same thing but differently. Futermore if some tricks are needed for these conversions, they should be done in one place. Thanks Franck -- >8 -- diff --git a/arch/mips/kernel/setup.c b/arch/mips/kernel/setup.c index fdbb508..00d62bd 100644 --- a/arch/mips/kernel/setup.c +++ b/arch/mips/kernel/setup.c @@ -204,12 +204,12 @@ static void __init finalize_initrd(void) printk(KERN_INFO "Initrd not found or empty"); goto disable; } - if (CPHYSADDR(initrd_end) > PFN_PHYS(max_low_pfn)) { + if (__pa(initrd_end) > PFN_PHYS(max_low_pfn)) { printk("Initrd extends beyond end of memory"); goto disable; } - reserve_bootmem(CPHYSADDR(initrd_start), size); + reserve_bootmem(__pa(initrd_start), size); initrd_below_start_ok = 1; printk(KERN_INFO "Initial ramdisk at: 0x%lx (%lu bytes)\n", @@ -256,7 +256,7 @@ static void __init bootmem_init(void) * of usable memory. */ reserved_end = init_initrd(); - reserved_end = PFN_UP(CPHYSADDR(max(reserved_end, (unsigned long)&_end))); + reserved_end = PFN_UP(__pa(max(reserved_end, (unsigned long)&_end))); /* * Find the highest page frame number we have available.