[PATCH] ARM: use phys_addr_t in pfn_to_kaddr()

Nicolas Pitre nicolas.pitre at linaro.org
Thu Jun 25 09:33:18 PDT 2015


On Wed, 24 Jun 2015, santosh shilimkar wrote:

> On 6/23/2015 8:13 AM, Vitaly Andrianov wrote:
> > This patch fixes pfn_to_kaddr() to use phys_addr_t.  Without this,
> > this macro is broken on LPAE systems. For physical addresses above
> > first 4GB result of shifting pfn with PAGE_SHIFT may be truncated.
> >
> > Signed-off-by: Vitaly Andrianov <vitalya at ti.com>
> > ---
> Looks a valid fix.
> 
> RMK, Nico, what you say ?

Looks fine to me.

Acked-by: Nicolas Pitre <nico at linaro.org>


> 
> >   arch/arm/include/asm/memory.h | 2 +-
> >   1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/arch/arm/include/asm/memory.h b/arch/arm/include/asm/memory.h
> > index 184def0..063ef31 100644
> > --- a/arch/arm/include/asm/memory.h
> > +++ b/arch/arm/include/asm/memory.h
> > @@ -291,7 +291,7 @@ static inline void *phys_to_virt(phys_addr_t x)
> >   */
> >   #define __pa(x)			__virt_to_phys((unsigned long)(x))
> >   #define __va(x)			((void
> >   *)__phys_to_virt((phys_addr_t)(x)))
> > -#define pfn_to_kaddr(pfn)	__va((pfn) << PAGE_SHIFT)
> > +#define pfn_to_kaddr(pfn)	__va((phys_addr_t)(pfn) << PAGE_SHIFT)
> >
> >   extern phys_addr_t (*arch_virt_to_idmap)(unsigned long x);
> >
> >
> 
> 



More information about the linux-arm-kernel mailing list