[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [xen master] guestcopy: evaluate {, __}copy{, _field}_to_guest*() ptr argument just once
commit d0ee8e9ca4d4163e42dcd5f1cf13e4fae30a4190 Author: Jan Beulich <jbeulich@xxxxxxxx> AuthorDate: Mon Apr 27 09:30:16 2020 +0200 Commit: Jan Beulich <jbeulich@xxxxxxxx> CommitDate: Mon Apr 27 09:30:16 2020 +0200 guestcopy: evaluate {,__}copy{,_field}_to_guest*() ptr argument just once There's nothing wrong with having e.g. copy_to_guest(uarg, ptr++, 1); yet until now this would increment "ptr" twice. Also drop a pair of unneeded parentheses from every instance at this occasion. Fixes: b7954cc59831 ("Enhance guest memory accessor macros so that source operands can be") Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx> Reviewed-by: Julien Grall <jgrall@xxxxxxxxxx> --- xen/include/asm-arm/guest_access.h | 8 ++++---- xen/include/asm-x86/guest_access.h | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/xen/include/asm-arm/guest_access.h b/xen/include/asm-arm/guest_access.h index 3b8d4ec322..64d01951a9 100644 --- a/xen/include/asm-arm/guest_access.h +++ b/xen/include/asm-arm/guest_access.h @@ -80,7 +80,7 @@ int access_guest_memory_by_ipa(struct domain *d, paddr_t ipa, void *buf, char (*_d)[sizeof(*_s)] = (void *)(hnd).p; \ /* Check that the handle is not for a const type */ \ void *__maybe_unused _t = (hnd).p; \ - ((void)((hnd).p == (ptr))); \ + (void)((hnd).p == _s); \ raw_copy_to_guest(_d+(off), _s, sizeof(*_s)*(nr)); \ }) @@ -107,7 +107,7 @@ int access_guest_memory_by_ipa(struct domain *d, paddr_t ipa, void *buf, #define copy_field_to_guest(hnd, ptr, field) ({ \ const typeof(&(ptr)->field) _s = &(ptr)->field; \ void *_d = &(hnd).p->field; \ - ((void)(&(hnd).p->field == &(ptr)->field)); \ + (void)(&(hnd).p->field == _s); \ raw_copy_to_guest(_d, _s, sizeof(*_s)); \ }) @@ -131,7 +131,7 @@ int access_guest_memory_by_ipa(struct domain *d, paddr_t ipa, void *buf, char (*_d)[sizeof(*_s)] = (void *)(hnd).p; \ /* Check that the handle is not for a const type */ \ void *__maybe_unused _t = (hnd).p; \ - ((void)((hnd).p == (ptr))); \ + (void)((hnd).p == _s); \ __raw_copy_to_guest(_d+(off), _s, sizeof(*_s)*(nr));\ }) @@ -148,7 +148,7 @@ int access_guest_memory_by_ipa(struct domain *d, paddr_t ipa, void *buf, #define __copy_field_to_guest(hnd, ptr, field) ({ \ const typeof(&(ptr)->field) _s = &(ptr)->field; \ void *_d = &(hnd).p->field; \ - ((void)(&(hnd).p->field == &(ptr)->field)); \ + (void)(&(hnd).p->field == _s); \ __raw_copy_to_guest(_d, _s, sizeof(*_s)); \ }) diff --git a/xen/include/asm-x86/guest_access.h b/xen/include/asm-x86/guest_access.h index a22745ceb4..064527895f 100644 --- a/xen/include/asm-x86/guest_access.h +++ b/xen/include/asm-x86/guest_access.h @@ -89,7 +89,7 @@ char (*_d)[sizeof(*_s)] = (void *)(hnd).p; \ /* Check that the handle is not for a const type */ \ void *__maybe_unused _t = (hnd).p; \ - ((void)((hnd).p == (ptr))); \ + (void)((hnd).p == _s); \ raw_copy_to_guest(_d+(off), _s, sizeof(*_s)*(nr)); \ }) @@ -112,7 +112,7 @@ #define copy_field_to_guest(hnd, ptr, field) ({ \ const typeof(&(ptr)->field) _s = &(ptr)->field; \ void *_d = &(hnd).p->field; \ - ((void)(&(hnd).p->field == &(ptr)->field)); \ + (void)(&(hnd).p->field == _s); \ raw_copy_to_guest(_d, _s, sizeof(*_s)); \ }) @@ -141,7 +141,7 @@ char (*_d)[sizeof(*_s)] = (void *)(hnd).p; \ /* Check that the handle is not for a const type */ \ void *__maybe_unused _t = (hnd).p; \ - ((void)((hnd).p == (ptr))); \ + (void)((hnd).p == _s); \ __raw_copy_to_guest(_d+(off), _s, sizeof(*_s)*(nr));\ }) @@ -159,7 +159,7 @@ #define __copy_field_to_guest(hnd, ptr, field) ({ \ const typeof(&(ptr)->field) _s = &(ptr)->field; \ void *_d = &(hnd).p->field; \ - ((void)(&(hnd).p->field == &(ptr)->field)); \ + (void)(&(hnd).p->field == _s); \ __raw_copy_to_guest(_d, _s, sizeof(*_s)); \ }) -- generated by git-patchbot for /home/xen/git/xen.git#master
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |