Re: [PATCH] KVM: arm64: Use pointer from memcpy() call for assignment in init_hyp_mode()
From: David Laight <hidden>
Date: 2025-10-30 21:21:54
Also in:
kernel-janitors, kvmarm, lkml
On Thu, 30 Oct 2025 17:49:51 +0000 Mark Rutland [off-list ref] wrote:
On Thu, Oct 30, 2025 at 06:11:03PM +0100, Markus Elfring wrote:quoted
From: Markus Elfring <redacted> Date: Thu, 30 Oct 2025 18:01:41 +0100 A pointer was assigned to a variable. The same pointer was used for the destination parameter of a memcpy() call. This function is documented in the way that the same value is returned. Thus convert two separate statements into a direct variable assignment for the return value from a memory copy action. The source code was transformed by using the Coccinelle software. Signed-off-by: Markus Elfring <redacted> --- arch/arm64/kvm/arm.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)diff --git a/arch/arm64/kvm/arm.c b/arch/arm64/kvm/arm.c index 870953b4a8a7..feab88c31703 100644 --- a/arch/arm64/kvm/arm.c +++ b/arch/arm64/kvm/arm.c@@ -2600,8 +2600,8 @@ static int __init init_hyp_mode(void) goto out_err; } - page_addr = page_address(page); - memcpy(page_addr, CHOOSE_NVHE_SYM(__per_cpu_start), nvhe_percpu_size()); + page_addr = memcpy(page_address(page), CHOOSE_NVHE_SYM(__per_cpu_start), + nvhe_percpu_size());This change makes the code harder to read, and harder to modify. It saves no space.
It might save a register spill - but really isn't worth the effort.
memcpy() is really best treated as being 'void'.
Indeed most implementations would be better if it were 'void'.
Although you could define:
#define memcpy(d, s, l) ({ auto _d = d; void_memcpy(_d, s, l); _d})
so that the compiler would optimise away the save that memcpy() typically
has to do.
I even suspect that memcpy() is an old enough function that the return
value is 'what the implementation happened to leave in r0'.
David
As Dan said [1]: | No one will thank you for making these changes... :( Please don't do | it. [1] https://lore.kernel.org/lkml/aQNsecHJSO2U68Fc@stanley.mountain/ (local) Mark.