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

josh

_______________________________________________
Linuxppc-embedded mailing list
[email protected]
https://ozlabs.org/mailman/listinfo/linuxppc-embedded

Reply via email to