[PATCH] ppc: ioremap() on PPC44x platforms now accepts 64bit addresses
Stefan Roese
ml at stefan-roese.de
Mon Jan 29 08:00:19 EST 2007
Hi Josh,
On Friday 19 January 2007 12:57, Josh Boyer wrote:
> On Fri, 2007-01-19 at 09:05 +0100, Stefan Roese wrote:
> > [PATCH] ppc: ioremap() on PPC44x platforms now accepts 64bit addresses
> >
> > On systems that supply a real 64bit address (with
> > CONFIG_RESOURCES_64BIT enabled), don't use the fixup function. This
> > allows us to use the fixup function when no ERPN is specified and use
> > the 64 bit address when the ERPN is supplied.
>
> Good idea.
>
> > void __iomem *
> > ioremap(phys_addr_t addr, unsigned long size)
> > {
> > - phys_addr_t addr64 = fixup_bigphys_addr(addr, size);
> > -
> > - return ioremap64(addr64, size);
> > + /*
> > + * On systems that supply a real 64bit address
> > + * (with CONFIG_RESOURCES_64BIT enabled), don't use the
> > + * fixup function.
> > + * This allows us to use the fixup function when no ERPN
> > + * is specified and use the 64 bit address when the ERPN
> > + * is suppied.
> > + */
> > + if ((unsigned long long)addr && 0xffffffff00000000ULL)
> > + return ioremap64(addr, size);
>
> Erm... don't you want:
>
> addr & 0xffffffff00000000ULL
>
> What you have now is a logical and that will likely result in it always
> being true...
Of course. Thanks for spotting it. I'll resend the patch tomorrow.
Best regards,
Stefan
More information about the Linuxppc-dev
mailing list