]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
s390/kexec: Emit an error message when cmdline is too long
authorVasily Gorbik <gor@linux.ibm.com>
Tue, 3 Feb 2026 09:18:03 +0000 (10:18 +0100)
committerHeiko Carstens <hca@linux.ibm.com>
Tue, 3 Feb 2026 11:48:28 +0000 (12:48 +0100)
Currently, if the command line passed to kexec_file_load() exceeds
the supported limit of the kernel being kexec'd, -EINVAL is returned
to userspace, which is consistent across architectures. Since
-EINVAL is not specific to this case, the kexec tool cannot provide
a specific reason for the failure. Many architectures emit an error
message in this case. Add a similar error message, including the
effective limit, since the command line length is configurable.

Acked-by: Alexander Gordeev <agordeev@linux.ibm.com>
Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
arch/s390/kernel/machine_kexec_file.c

index a36d7311c6683b15d76f8db84fb44f300574d922..1bf59c3f0e2b8523c049783855d135d9c1bb56fb 100644 (file)
@@ -270,8 +270,10 @@ void *kexec_file_add_components(struct kimage *image,
        if (image->kernel_buf_len < minsize + max_command_line_size)
                goto out;
 
-       if (image->cmdline_buf_len >= max_command_line_size)
+       if (image->cmdline_buf_len >= max_command_line_size) {
+               pr_err("Kernel command line exceeds supported limit of %lu", max_command_line_size);
                goto out;
+       }
 
        memcpy(data.parm->command_line, image->cmdline_buf,
               image->cmdline_buf_len);