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]

 




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:

  --- 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 ;-)


kind regards

peter




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

  Powered by Linux