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

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



Hi, Julien.

I'll fix this in the next patch-set.

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 4:49 PM, Julien Grall <julien.grall@xxxxxxxxxx> wrote:
> On 11/26/2013 10:54 AM, Oleksandr Dmytryshyn wrote:
>> This function flushes the dcache while copying the data.
>>
>> Signed-off-by: Oleksandr Dmytryshyn <oleksandr.dmytryshyn@xxxxxxxxxxxxxxx>
>> ---
>>  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..4875b1d 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)
>> +unsigned long raw_copy_to_guest_helper(void *to, const void *from, unsigned 
>> len,
> This function should be static.
>
> Except that:
>
> Acked-by: Julien Grall<julien.grall@xxxxxxxxxx>
>
>> +                                       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);
>>
>>
>
>
> --
> Julien Grall

_______________________________________________
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®.