[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



Hi, Ian.

I'll do it next time.

Oleksandr Dmytryshyn | Product Engineering and Development
GlobalLogic
P x3657  M +38.067.382.2525
www.globallogic.com

http://www.globallogic.com/email_disclaimer.txt


On Wed, Nov 27, 2013 at 7:14 PM, Ian Campbell <Ian.Campbell@xxxxxxxxxx> wrote:
> 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®.