From 7963131d640f142c16dd6f835cfe3b8a2f347792 Mon Sep 17 00:00:00 2001 From: Jan Beulich Date: Tue, 22 Sep 2026 09:15:48 +0200 Subject: [PATCH] Arm/guestcopy: avoid use of "current" in compound literals Compound literals are also covered by Misra C:2012 rule 13.1 ("Initializer lists shall not contain persistent side effects"), and (sadly?) that rule also applies to lists with just a single element, or more generally with just a single side effect. Use intermediate variables to overcome this. No functional change intended. Signed-off-by: Jan Beulich Reviewed-by: Michal Orzel --- xen/arch/arm/guestcopy.c | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/xen/arch/arm/guestcopy.c b/xen/arch/arm/guestcopy.c index 2235d23ba5..cec33049b3 100644 --- a/xen/arch/arm/guestcopy.c +++ b/xen/arch/arm/guestcopy.c @@ -109,29 +109,37 @@ 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) { + struct vcpu *curr = current; + return copy_guest((void *)from, /* COPY_to_guest doesn't modify */ - (vaddr_t)to, len, GVA_INFO(current), + (vaddr_t)to, len, GVA_INFO(curr), COPY_to_guest | COPY_linear); } unsigned long raw_copy_to_guest_flush_dcache(void *to, const void *from, unsigned int len) { + struct vcpu *curr = current; + return copy_guest((void *)from, /* COPY_to_guest doesn't modify */ - (vaddr_t)to, len, GVA_INFO(current), + (vaddr_t)to, len, GVA_INFO(curr), COPY_to_guest | COPY_flush_dcache | COPY_linear); } unsigned long raw_clear_guest(void *to, unsigned int len) { - return copy_guest(NULL, (vaddr_t)to, len, GVA_INFO(current), + struct vcpu *curr = current; + + return copy_guest(NULL, (vaddr_t)to, len, GVA_INFO(curr), COPY_to_guest | COPY_linear); } unsigned long raw_copy_from_guest(void *to, const void __user *from, unsigned int len) { - return copy_guest(to, (vaddr_t)from, len, GVA_INFO(current), + struct vcpu *curr = current; + + return copy_guest(to, (vaddr_t)from, len, GVA_INFO(curr), COPY_from_guest | COPY_linear); }