Re: [PATCH] MIPS: make CAC_ADDR and UNCAC_ADDR account for PHYS_OFFSET

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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@xxxxxxxxxxx>
>   > To: linux-mips@xxxxxxxxxxxxxx
>   > Cc: ralf@xxxxxxxxxxxxxx
>   > Subject: [PATCH] MIPS: make CAC_ADDR and UNCAC_ADDR account for
>   >     PHYS_OFFSET
>   >
>   > On AR7, ...
>   >
>   > Signed-off-by: Regards, Florian Fainelli <florian@xxxxxxxxxxx>
>   > ---
>   > 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@xxxxxxxxxxx
Web: http://openwrt.org
IRC: [florian] on irc.freenode.net
-------------------------------

Attachment: signature.asc
Description: This is a digitally signed message part.


[Index of Archives]     [Linux MIPS Home]     [LKML Archive]     [Linux ARM Kernel]     [Linux ARM]     [Linux]     [Git]     [Yosemite News]     [Linux SCSI]     [Linux Hams]

  Powered by Linux