Commit f8a9c110 authored by Vasily Gorbik's avatar Vasily Gorbik Committed by Heiko Carstens
Browse files

s390/kexec: Emit an error message when cmdline is too long



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: default avatarAlexander Gordeev <agordeev@linux.ibm.com>
Signed-off-by: default avatarVasily Gorbik <gor@linux.ibm.com>
Signed-off-by: default avatarHeiko Carstens <hca@linux.ibm.com>
parent b8555fbc
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -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);