All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Julien Grall <julien.grall@linaro.org>
Cc: xen-devel@lists.xenproject.org, patches@linaro.org, tim@xen.org,
	ian.campbell@citrix.com, stefano.stabellini@eu.citrix.com
Subject: Re: [PATCH] xen/arm: ioremap_attr: return NULL is __vmap failed
Date: Fri, 15 Nov 2013 15:45:20 +0000	[thread overview]
Message-ID: <52864190.4000908@citrix.com> (raw)
In-Reply-To: <1384529257-7590-1-git-send-email-julien.grall@linaro.org>

On 15/11/13 15:27, Julien Grall wrote:
> Most of ioremap_* caller check if ioremap returns NULL. Actually, if the
> physical address is non-aligned, Xen will return the pointer given by
> __vmap plus the offset in the page. So if ioremap_* fails, the caller
> will retrieve an non-NULL address and continue as if there was no error.
>
> Signed-off-by: Julien Grall <julien.grall@linaro.org>
> ---
>  xen/arch/arm/mm.c | 7 ++++++-
>  1 file changed, 6 insertions(+), 1 deletion(-)
>
> diff --git a/xen/arch/arm/mm.c b/xen/arch/arm/mm.c
> index 26c6768..5137668 100644
> --- a/xen/arch/arm/mm.c
> +++ b/xen/arch/arm/mm.c
> @@ -742,8 +742,13 @@ void *ioremap_attr(paddr_t pa, size_t len, unsigned int attributes)
>      unsigned long pfn = PFN_DOWN(pa);
>      unsigned int offs = pa & (PAGE_SIZE - 1);
>      unsigned int nr = PFN_UP(offs + len);
> +    void *ptr;
>  
> -    return (__vmap(&pfn, nr, 1, 1, attributes) + offs);
> +    ptr = __vmap(&pfn, nr, 1, 1, attributes);

No need to split the declaration of void *ptr and its initialisation.

~Andrew

> +    if ( ptr == NULL )
> +        return NULL;
> +
> +    return (ptr + offs);
>  }
>  
>  void *ioremap(paddr_t pa, size_t len)

  parent reply	other threads:[~2013-11-15 15:45 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-11-15 15:27 [PATCH] xen/arm: ioremap_attr: return NULL is __vmap failed Julien Grall
2013-11-15 15:27 ` [PATCH] xen/arm: Panic if platform initialization failed Julien Grall
2013-11-15 15:59   ` Stefano Stabellini
2013-11-19 14:50     ` Ian Campbell
2013-11-15 15:27 ` [PATCH] xen/arm: Panic if we are unable to initialize platform timer Julien Grall
2013-11-15 15:58   ` Stefano Stabellini
2013-11-19 14:47     ` Ian Campbell
2013-11-19 16:39       ` Julien Grall
2013-11-15 15:45 ` Andrew Cooper [this message]
2013-11-15 16:04 ` [PATCH] xen/arm: ioremap_attr: return NULL is __vmap failed Stefano Stabellini

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=52864190.4000908@citrix.com \
    --to=andrew.cooper3@citrix.com \
    --cc=ian.campbell@citrix.com \
    --cc=julien.grall@linaro.org \
    --cc=patches@linaro.org \
    --cc=stefano.stabellini@eu.citrix.com \
    --cc=tim@xen.org \
    --cc=xen-devel@lists.xenproject.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.