bootconfig: Fix to remove bootconfig data from initrd while boot
authorMasami Hiramatsu <mhiramat@kernel.org>
Sun, 26 Apr 2020 06:53:30 +0000 (15:53 +0900)
committerSteven Rostedt (VMware) <rostedt@goodmis.org>
Wed, 6 May 2020 13:04:11 +0000 (09:04 -0400)
commitde462e5f10718517bacf2f84c8aa2804567ef7df
tree249437f9aee0e376efae8ee7831bfabbc95e81c1
parent6a8b55ed4056ea5559ebe4f6a4b247f627870d4c
bootconfig: Fix to remove bootconfig data from initrd while boot

If there is a bootconfig data in the tail of initrd/initramfs,
initrd image sanity check caused an error while decompression
stage as follows.

[    0.883882] Unpacking initramfs...
[    2.696429] Initramfs unpacking failed: invalid magic at start of compressed archive

This error will be ignored if CONFIG_BLK_DEV_RAM=n,
but CONFIG_BLK_DEV_RAM=y the kernel failed to mount rootfs
and causes a panic.

To fix this issue, shrink down the initrd_end for removing
tailing bootconfig data while boot the kernel.

Link: http://lkml.kernel.org/r/158788401014.24243.17424755854115077915.stgit@devnote2
Cc: Borislav Petkov <bp@alien8.de>
Cc: Kees Cook <keescook@chromium.org>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: stable@vger.kernel.org
Fixes: 7684b8582c24 ("bootconfig: Load boot config from the tail of initrd")
Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
init/main.c