Arm/guestcopy: deviate copy_guest() uses just like their x86 counterparts

Like x86/HVM's __hvm_copy(), Arm's copy_guest() is used for both to-guest
and from-guest copying. Naturally in the latter case the hypervisor buffer
needs writing to, hence the function parameter cannot be pointer-to-const.

No functional change intended.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
Reviewed-by: Michal Orzel <michal.orzel@amd.com>
Reviewed-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
This commit is contained in:
Jan Beulich committed 2026-09-22 09:13:19 +02:00
1 parent d4d8d3bfba
commit 40ad6282e2
2 files changed
+11 -3

No files matched your search

@@ -433,6 +433,12 @@ Fixing this violation would require to increase code complexity and lower readab
-config=MC3A2.R11.8,reports+={safe,"any_area(any_loc(any_exp(macro(^container_of$))))"}
-doc_end
-doc_begin="Function copy_guest() in xen/arch/arm/guestcopy.c is a double-use
function, where the parameter needs to not be const because it can be set for
write or not"
-config=MC3A2.R11.8,reports+={safe,"any_area(any_loc(text(^.*copy_guest.*COPY_to_guest doesn't modify.*$)))"}
-doc_end
-doc_begin="Function __hvm_copy in xen/arch/x86/hvm/hvm.c is a double-use
function, where the parameter needs to not be const because it can be set for
write or not"
+5 -3
View File
@@ -109,14 +109,16 @@ static unsigned long copy_guest(void *buf, uint64_t addr, unsigned long len,
unsigned long raw_copy_to_guest(void *to, const void *from, unsigned int len)
{
return copy_guest((void *)from, (vaddr_t)to, len,
GVA_INFO(current), COPY_to_guest | COPY_linear);
return copy_guest((void *)from, /* COPY_to_guest doesn't modify */
(vaddr_t)to, len, GVA_INFO(current),
COPY_to_guest | COPY_linear);
}
unsigned long raw_copy_to_guest_flush_dcache(void *to, const void *from,
unsigned int len)
{
return copy_guest((void *)from, (vaddr_t)to, len, GVA_INFO(current),
return copy_guest((void *)from, /* COPY_to_guest doesn't modify */
(vaddr_t)to, len, GVA_INFO(current),
COPY_to_guest | COPY_flush_dcache | COPY_linear);
}
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.