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

Re: [Xen-devel] [PATCH v4 1/2] xen: arm: introduce raw_copy_to_guest_flush_dcache() function



On Wed, 2013-11-27 at 19:09 +0200, Oleksandr Dmytryshyn wrote:
> This function flushes the dcache while copying the data.
> 
> Signed-off-by: Oleksandr Dmytryshyn <oleksandr.dmytryshyn@xxxxxxxxxxxxxxx>

Thanks.

For future reference: Please can you list the Acked-/Reviewed-by etc
which people gave on previous iterations here as described in
http://wiki.xen.org/wiki/Submitting_Xen_Patches when you resend.

This means that reviews don't need to remember if they've been through a
patch and is helpful for committers too if they don't have to go hunting
for previous threads..

No need to resend just for this, I'll manage this time.

Thanks,
Ian.

> ---
>  xen/arch/arm/guestcopy.c           | 16 +++++++++++++++-
>  xen/include/asm-arm/guest_access.h |  2 ++
>  2 files changed, 17 insertions(+), 1 deletion(-)
> 
> diff --git a/xen/arch/arm/guestcopy.c b/xen/arch/arm/guestcopy.c
> index d146cd6..08800a4 100644
> --- a/xen/arch/arm/guestcopy.c
> +++ b/xen/arch/arm/guestcopy.c
> @@ -5,7 +5,8 @@
>  #include <asm/mm.h>
>  #include <asm/guest_access.h>
>  
> -unsigned long raw_copy_to_guest(void *to, const void *from, unsigned len)
> +static unsigned long raw_copy_to_guest_helper(void *to, const void *from,
> +                                              unsigned len, unsigned 
> flush_dcache)
>  {
>      /* XXX needs to handle faults */
>      unsigned offset = (vaddr_t)to & ~PAGE_MASK;
> @@ -24,6 +25,8 @@ unsigned long raw_copy_to_guest(void *to, const void *from, 
> unsigned len)
>          p = map_domain_page(g>>PAGE_SHIFT);
>          p += offset;
>          memcpy(p, from, size);
> +        if ( flush_dcache )
> +            flush_xen_dcache_va_range(p, size);
>  
>          unmap_domain_page(p - offset);
>          len -= size;
> @@ -35,6 +38,17 @@ unsigned long raw_copy_to_guest(void *to, const void 
> *from, unsigned len)
>      return 0;
>  }
>  
> +unsigned long raw_copy_to_guest(void *to, const void *from, unsigned len)
> +{
> +    return raw_copy_to_guest_helper(to, from, len, 0);
> +}
> +
> +unsigned long raw_copy_to_guest_flush_dcache(void *to, const void *from,
> +                                             unsigned len)
> +{
> +    return raw_copy_to_guest_helper(to, from, len, 1);
> +}
> +
>  unsigned long raw_clear_guest(void *to, unsigned len)
>  {
>      /* XXX needs to handle faults */
> diff --git a/xen/include/asm-arm/guest_access.h 
> b/xen/include/asm-arm/guest_access.h
> index 8ff088f..5876988 100644
> --- a/xen/include/asm-arm/guest_access.h
> +++ b/xen/include/asm-arm/guest_access.h
> @@ -11,6 +11,8 @@
>      (likely(count < (~0UL/size)) && access_ok(addr,count*size))
>  
>  unsigned long raw_copy_to_guest(void *to, const void *from, unsigned len);
> +unsigned long raw_copy_to_guest_flush_dcache(void *to, const void *from,
> +                                             unsigned len);
>  unsigned long raw_copy_from_guest(void *to, const void *from, unsigned len);
>  unsigned long raw_clear_guest(void *to, unsigned len);
>  



_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.