[PATCH] MIPS: Loongson64: Use pointer from memcpy() call for assignment in loongson_kexec_prepare()

Markus Elfring posted 1 patch 3 months, 1 week ago
arch/mips/loongson64/reset.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
[PATCH] MIPS: Loongson64: Use pointer from memcpy() call for assignment in loongson_kexec_prepare()
Posted by Markus Elfring 3 months, 1 week ago
From: Markus Elfring <elfring@users.sourceforge.net>
Date: Thu, 30 Oct 2025 20:48:11 +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 <elfring@users.sourceforge.net>
---
 arch/mips/loongson64/reset.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/arch/mips/loongson64/reset.c b/arch/mips/loongson64/reset.c
index 3e20ade0503a..ce412f5616b7 100644
--- a/arch/mips/loongson64/reset.c
+++ b/arch/mips/loongson64/reset.c
@@ -76,8 +76,9 @@ static int loongson_kexec_prepare(struct kimage *image)
 			 * of parameters (as bootloader does).
 			 */
 			int offt;
-			str = (char *)argv + KEXEC_ARGV_SIZE/2;
-			memcpy(str, image->segment[i].buf, KEXEC_ARGV_SIZE/2);
+
+			str = memcpy((char *)argv + KEXEC_ARGV_SIZE / 2, image->segment[i].buf,
+				     KEXEC_ARGV_SIZE / 2);
 			ptr = strchr(str, ' ');
 
 			while (ptr && (argc < MAX_ARGS)) {
-- 
2.51.1
Re: [PATCH] MIPS: Loongson64: Use pointer from memcpy() call for assignment in loongson_kexec_prepare()
Posted by Eric W. Biederman 3 months, 1 week ago
Markus Elfring <Markus.Elfring@web.de> writes:

> From: Markus Elfring <elfring@users.sourceforge.net>
> Date: Thu, 30 Oct 2025 20:48:11 +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.

Just looking at this change, I think this obscures things more than
clarifies things.

I believe the separate variable was used as much as anything to make
the line lengths shorter and the code more readable.

Eric


> Signed-off-by: Markus Elfring <elfring@users.sourceforge.net>
> ---
>  arch/mips/loongson64/reset.c | 5 +++--
>  1 file changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/arch/mips/loongson64/reset.c b/arch/mips/loongson64/reset.c
> index 3e20ade0503a..ce412f5616b7 100644
> --- a/arch/mips/loongson64/reset.c
> +++ b/arch/mips/loongson64/reset.c
> @@ -76,8 +76,9 @@ static int loongson_kexec_prepare(struct kimage *image)
>  			 * of parameters (as bootloader does).
>  			 */
>  			int offt;
> -			str = (char *)argv + KEXEC_ARGV_SIZE/2;
> -			memcpy(str, image->segment[i].buf, KEXEC_ARGV_SIZE/2);
> +
> +			str = memcpy((char *)argv + KEXEC_ARGV_SIZE / 2, image->segment[i].buf,
> +				     KEXEC_ARGV_SIZE / 2);
>  			ptr = strchr(str, ' ');
>  
>  			while (ptr && (argc < MAX_ARGS)) {