All of lore.kernel.org
 help / color / mirror / Atom feed
From: Cristian Stoica <cristian.stoica@freescale.com>
To: <gregkh@linuxfoundation.org>
Cc: <horia.geanta@freescale.com>, <linuxppc-dev@lists.ozlabs.org>,
	<linux-kernel@vger.kernel.org>
Subject: Re: [PATCH v2] powerpc: support sizes greater than an unsigned long
Date: Thu, 11 Jun 2015 17:42:00 +0300	[thread overview]
Message-ID: <55799E38.1000004@freescale.com> (raw)
In-Reply-To: <1431683064-29584-1-git-send-email-cristian.stoica@freescale.com>

Hi Greg,

Can you have a look at this patch?

https://patchwork.kernel.org/patch/6413191/

Thanks,
Cristian S.


On 05/15/2015 12:44 PM, Cristian Stoica wrote:
> Use resource_size_t to accommodate sizes greater than the size of an
> unsigned long int on platforms that have more than 32 bit
> physical addresses
> 
> Signed-off-by: Cristian Stoica <cristian.stoica@freescale.com>
> 
> Changes in v2:
> - update definitions is pgtable_64.c as well - or else we get broken builds on 64
> - minor reformatting in pgtable_64.c to satisfy checkpatch
> 
> ---
>  arch/powerpc/include/asm/io.h | 14 +++++++-------
>  arch/powerpc/mm/pgtable_32.c  | 10 +++++-----
>  arch/powerpc/mm/pgtable_64.c  | 22 +++++++++++-----------
>  3 files changed, 23 insertions(+), 23 deletions(-)
> 
> diff --git a/arch/powerpc/include/asm/io.h b/arch/powerpc/include/asm/io.h
> index a8d2ef3..749c66e 100644
> --- a/arch/powerpc/include/asm/io.h
> +++ b/arch/powerpc/include/asm/io.h
> @@ -716,24 +716,24 @@ static inline void iosync(void)
>   *   be hooked (but can be used by a hook on iounmap)
>   *
>   */
> -extern void __iomem *ioremap(phys_addr_t address, unsigned long size);
> -extern void __iomem *ioremap_prot(phys_addr_t address, unsigned long size,
> +extern void __iomem *ioremap(phys_addr_t address, resource_size_t size);
> +extern void __iomem *ioremap_prot(phys_addr_t address, resource_size_t size,
>  				  unsigned long flags);
> -extern void __iomem *ioremap_wc(phys_addr_t address, unsigned long size);
> +extern void __iomem *ioremap_wc(phys_addr_t address, resource_size_t size);
>  #define ioremap_nocache(addr, size)	ioremap((addr), (size))
>  
>  extern void iounmap(volatile void __iomem *addr);
>  
> -extern void __iomem *__ioremap(phys_addr_t, unsigned long size,
> +extern void __iomem *__ioremap(phys_addr_t, resource_size_t size,
>  			       unsigned long flags);
> -extern void __iomem *__ioremap_caller(phys_addr_t, unsigned long size,
> +extern void __iomem *__ioremap_caller(phys_addr_t, resource_size_t size,
>  				      unsigned long flags, void *caller);
>  
>  extern void __iounmap(volatile void __iomem *addr);
>  
>  extern void __iomem * __ioremap_at(phys_addr_t pa, void *ea,
> -				   unsigned long size, unsigned long flags);
> -extern void __iounmap_at(void *ea, unsigned long size);
> +				   resource_size_t size, unsigned long flags);
> +extern void __iounmap_at(void *ea, resource_size_t size);
>  
>  /*
>   * When CONFIG_PPC_INDIRECT_PIO is set, we use the generic iomap implementation
> diff --git a/arch/powerpc/mm/pgtable_32.c b/arch/powerpc/mm/pgtable_32.c
> index 7692d1b..a7d5137 100644
> --- a/arch/powerpc/mm/pgtable_32.c
> +++ b/arch/powerpc/mm/pgtable_32.c
> @@ -135,7 +135,7 @@ pgtable_t pte_alloc_one(struct mm_struct *mm, unsigned long address)
>  }
>  
>  void __iomem *
> -ioremap(phys_addr_t addr, unsigned long size)
> +ioremap(phys_addr_t addr, resource_size_t size)
>  {
>  	return __ioremap_caller(addr, size, _PAGE_NO_CACHE | _PAGE_GUARDED,
>  				__builtin_return_address(0));
> @@ -143,7 +143,7 @@ ioremap(phys_addr_t addr, unsigned long size)
>  EXPORT_SYMBOL(ioremap);
>  
>  void __iomem *
> -ioremap_wc(phys_addr_t addr, unsigned long size)
> +ioremap_wc(phys_addr_t addr, resource_size_t size)
>  {
>  	return __ioremap_caller(addr, size, _PAGE_NO_CACHE,
>  				__builtin_return_address(0));
> @@ -151,7 +151,7 @@ ioremap_wc(phys_addr_t addr, unsigned long size)
>  EXPORT_SYMBOL(ioremap_wc);
>  
>  void __iomem *
> -ioremap_prot(phys_addr_t addr, unsigned long size, unsigned long flags)
> +ioremap_prot(phys_addr_t addr, resource_size_t size, unsigned long flags)
>  {
>  	/* writeable implies dirty for kernel addresses */
>  	if ((flags & (_PAGE_RW | _PAGE_RO)) != _PAGE_RO)
> @@ -173,13 +173,13 @@ ioremap_prot(phys_addr_t addr, unsigned long size, unsigned long flags)
>  EXPORT_SYMBOL(ioremap_prot);
>  
>  void __iomem *
> -__ioremap(phys_addr_t addr, unsigned long size, unsigned long flags)
> +__ioremap(phys_addr_t addr, resource_size_t size, unsigned long flags)
>  {
>  	return __ioremap_caller(addr, size, flags, __builtin_return_address(0));
>  }
>  
>  void __iomem *
> -__ioremap_caller(phys_addr_t addr, unsigned long size, unsigned long flags,
> +__ioremap_caller(phys_addr_t addr, resource_size_t size, unsigned long flags,
>  		 void *caller)
>  {
>  	unsigned long v, i;
> diff --git a/arch/powerpc/mm/pgtable_64.c b/arch/powerpc/mm/pgtable_64.c
> index 59daa5e..64dd7a9 100644
> --- a/arch/powerpc/mm/pgtable_64.c
> +++ b/arch/powerpc/mm/pgtable_64.c
> @@ -168,8 +168,8 @@ int map_kernel_page(unsigned long ea, unsigned long pa, int flags)
>   * __ioremap_at - Low level function to establish the page tables
>   *                for an IO mapping
>   */
> -void __iomem * __ioremap_at(phys_addr_t pa, void *ea, unsigned long size,
> -			    unsigned long flags)
> +void __iomem *__ioremap_at(phys_addr_t pa, void *ea, resource_size_t size,
> +			   unsigned long flags)
>  {
>  	unsigned long i;
>  
> @@ -202,7 +202,7 @@ void __iomem * __ioremap_at(phys_addr_t pa, void *ea, unsigned long size,
>   *                  are manipulated manually, like partial unmapping of
>   *                  PCI IOs or ISA space.
>   */
> -void __iounmap_at(void *ea, unsigned long size)
> +void __iounmap_at(void *ea, resource_size_t size)
>  {
>  	WARN_ON(((unsigned long)ea) & ~PAGE_MASK);
>  	WARN_ON(size & ~PAGE_MASK);
> @@ -210,8 +210,8 @@ void __iounmap_at(void *ea, unsigned long size)
>  	unmap_kernel_range((unsigned long)ea, size);
>  }
>  
> -void __iomem * __ioremap_caller(phys_addr_t addr, unsigned long size,
> -				unsigned long flags, void *caller)
> +void __iomem *__ioremap_caller(phys_addr_t addr, resource_size_t size,
> +			       unsigned long flags, void *caller)
>  {
>  	phys_addr_t paligned;
>  	void __iomem *ret;
> @@ -255,13 +255,13 @@ void __iomem * __ioremap_caller(phys_addr_t addr, unsigned long size,
>  	return ret;
>  }
>  
> -void __iomem * __ioremap(phys_addr_t addr, unsigned long size,
> -			 unsigned long flags)
> +void __iomem *__ioremap(phys_addr_t addr, resource_size_t size,
> +			unsigned long flags)
>  {
>  	return __ioremap_caller(addr, size, flags, __builtin_return_address(0));
>  }
>  
> -void __iomem * ioremap(phys_addr_t addr, unsigned long size)
> +void __iomem *ioremap(phys_addr_t addr, resource_size_t size)
>  {
>  	unsigned long flags = _PAGE_NO_CACHE | _PAGE_GUARDED;
>  	void *caller = __builtin_return_address(0);
> @@ -271,7 +271,7 @@ void __iomem * ioremap(phys_addr_t addr, unsigned long size)
>  	return __ioremap_caller(addr, size, flags, caller);
>  }
>  
> -void __iomem * ioremap_wc(phys_addr_t addr, unsigned long size)
> +void __iomem *ioremap_wc(phys_addr_t addr, resource_size_t size)
>  {
>  	unsigned long flags = _PAGE_NO_CACHE;
>  	void *caller = __builtin_return_address(0);
> @@ -281,8 +281,8 @@ void __iomem * ioremap_wc(phys_addr_t addr, unsigned long size)
>  	return __ioremap_caller(addr, size, flags, caller);
>  }
>  
> -void __iomem * ioremap_prot(phys_addr_t addr, unsigned long size,
> -			     unsigned long flags)
> +void __iomem *ioremap_prot(phys_addr_t addr, resource_size_t size,
> +			   unsigned long flags)
>  {
>  	void *caller = __builtin_return_address(0);
>  
> 

  reply	other threads:[~2015-06-11 14:57 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-05-14 16:24 [PATCH] powerpc: support sizes greater than an unsigned long Cristian Stoica
2015-05-14 16:24 ` Cristian Stoica
2015-05-15  9:44 ` [PATCH v2] " Cristian Stoica
2015-05-15  9:44   ` Cristian Stoica
2015-06-11 14:42   ` Cristian Stoica [this message]
2015-06-11 15:38     ` Greg KH
2015-06-11 16:10       ` Cristian Stoica
2015-06-11 16:17         ` Greg KH
2015-06-11 21:27         ` Scott Wood
2015-06-12  7:53           ` Cristian Stoica

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=55799E38.1000004@freescale.com \
    --to=cristian.stoica@freescale.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=horia.geanta@freescale.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linuxppc-dev@lists.ozlabs.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.