[PATCH] sh: simplify setup_arch command line handling

From: Thorsten Blum

Date: Wed Apr 22 2026 - 05:30:57 EST


Handle CONFIG_CMDLINE_EXTEND explicitly in its own branch and build the
command line string with a single snprintf(), instead of first copying
COMMAND_LINE and then appending a space and CONFIG_CMDLINE using two
strlcat() calls.

This keeps the logic aligned with the mutually exclusive Kconfig options
and makes the three cases easier to read.

Also use the two-argument version of strscpy() for the fixed-size
'command_line' buffer in the overwrite and bootloader-only cases.

Signed-off-by: Thorsten Blum <thorsten.blum@xxxxxxxxx>
---
arch/sh/kernel/setup.c | 13 ++++++-------
1 file changed, 6 insertions(+), 7 deletions(-)

diff --git a/arch/sh/kernel/setup.c b/arch/sh/kernel/setup.c
index 039a51291002..d8c19a3d2801 100644
--- a/arch/sh/kernel/setup.c
+++ b/arch/sh/kernel/setup.c
@@ -299,14 +299,13 @@ void __init setup_arch(char **cmdline_p)
bss_resource.start = virt_to_phys(__bss_start);
bss_resource.end = virt_to_phys(__bss_stop)-1;

-#ifdef CONFIG_CMDLINE_OVERWRITE
- strscpy(command_line, CONFIG_CMDLINE, sizeof(command_line));
+#if defined(CONFIG_CMDLINE_OVERWRITE)
+ strscpy(command_line, CONFIG_CMDLINE);
+#elif defined(CONFIG_CMDLINE_EXTEND)
+ snprintf(command_line, sizeof(command_line), "%s %s", COMMAND_LINE,
+ CONFIG_CMDLINE);
#else
- strscpy(command_line, COMMAND_LINE, sizeof(command_line));
-#ifdef CONFIG_CMDLINE_EXTEND
- strlcat(command_line, " ", sizeof(command_line));
- strlcat(command_line, CONFIG_CMDLINE, sizeof(command_line));
-#endif
+ strscpy(command_line, COMMAND_LINE);
#endif

/* Save unparsed command line copy for /proc/cmdline */