s390/decompressor: fix initrd corruption caused by bss clear
Reorder the operations in decompress_kernel() to ensure initrd is moved to a safe location before the bss section is zeroed. During decompression bss can overlap with the initrd and this can corrupt the initrd contents depending on the size of the compressed kernel (which affects where the initrd is placed by the bootloader) and the size of the bss section of the decompressor. Also use the correct initrd size when checking for overlaps with parmblock. Fixes: 06c0dd72 ([S390] fix boot failures with compressed kernels) Cc: stable@vger.kernel.org Reviewed-by: NJoy Latten <joy.latten@canonical.com> Reviewed-by: NVineetha HariPai <vineetha.hari.pai@canonical.com> Signed-off-by: NMarcelo Henrique Cerri <marcelo.cerri@canonical.com> Signed-off-by: NHeiko Carstens <heiko.carstens@de.ibm.com> Signed-off-by: NMartin Schwidefsky <schwidefsky@de.ibm.com>
Showing
想要评论请 注册 或 登录