Le mardi 9 mars 2010 22:03:27, peter fuerst a écrit :
> Hi Florian, thats funny!
>
> On Tue, 9 Mar 2010, Florian Fainelli wrote:
> > Date: Tue, 9 Mar 2010 15:46:01 +0100
> > From: Florian Fainelli <florian@openwrt.org>
> > To: linux-mips@linux-mips.org
> > Cc: ralf@linux-mips.org
> > Subject: [PATCH] MIPS: make CAC_ADDR and UNCAC_ADDR account for
> > PHYS_OFFSET
> >
> > On AR7, ...
> >
> > Signed-off-by: Regards, Florian Fainelli <florian@openwrt.org>
> > ---
> > diff --git a/arch/mips/include/asm/page.h
> > b/arch/mips/include/asm/page.h index ac32572..7b11df5 100644
> > --- a/arch/mips/include/asm/page.h
> > +++ b/arch/mips/include/asm/page.h
> > @@ -188,8 +188,10 @@ typedef struct { unsigned long pgprot; } pgprot_t;
> > #define VM_DATA_DEFAULT_FLAGS (VM_READ | VM_WRITE | VM_EXEC | \
> > VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC)
> >
> > -#define UNCAC_ADDR(addr) ((addr) - PAGE_OFFSET + UNCAC_BASE)
> > -#define CAC_ADDR(addr) ((addr) - UNCAC_BASE + PAGE_OFFSET)
> > +#define UNCAC_ADDR(addr) ((addr) - PAGE_OFFSET + UNCAC_BASE + \
> > + PHYS_OFFSET)
> > +#define CAC_ADDR(addr) ((addr) - UNCAC_BASE + PAGE_OFFSET +
> \
> > + PHYS_OFFSET)
> >
> > #include <asm-generic/memory_model.h>
> > #include <asm-generic/getorder.h>
>
> I assume, you don't want "+" PHYS_OFFSET in both defines.
>
> Two years and a month ago almost the same patch (which used to work on
> the machine that needed it :) was submitted:
Oh I actually did even search for that one.
>
> --- a/linux-2.6.24/include/asm-mips/page.h Fri Jan 25 12:23:51 2008
> +++ b/linux-2.6.24/include/asm-mips/page.h Wed Feb 6 23:26:31 2008
> @@ -184,8 +184,8 @@
> #define VM_DATA_DEFAULT_FLAGS (VM_READ | VM_WRITE | VM_EXEC | \
> VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC)
>
> -#define UNCAC_ADDR(addr) ((addr) - PAGE_OFFSET + UNCAC_BASE)
> -#define CAC_ADDR(addr) ((addr) - UNCAC_BASE + PAGE_OFFSET)
> +#define UNCAC_ADDR(addr) ((addr) - PAGE_OFFSET + PHYS_OFFSET +
> UNCAC_BASE) +#define CAC_ADDR(addr) ((addr) - UNCAC_BASE +
> PAGE_OFFSET -
> PHYS_OFFSET)
>
> #include <asm-generic/memory_model.h>
> #include <asm-generic/page.h>
>
> But correct versions of these macros seem to be essential for very
> "exotic" systems only ;-)
You are right. This is actually needed when people do weird designs, and that
happens ;) Will resubmit with the proper fixing.
--
Best regards, Florian Fainelli
Email: florian@openwrt.org
Web: http://openwrt.org
IRC: [florian] on irc.freenode.net
-------------------------------
signature.asc
Description: This is a digitally signed message part.
|