process-debuginfo: fixed re-compression of kernel modules

Linux kernel supports the direct loading of compressed modules
(via finit_module system call) since version 5.15. However
decompression options are less flexible (and are set at
the compile time). In particular kernel can read lzma archives
only with a dictionary size exactly 1 MiB, and crc32 checksum.

kmod started to make use of direct module loading since version
31. However kmod does not fall back to decompressing in the userspace
if the kernel compressed modules, which causes serious troubles
(boot failures, some devices not working, etc).

To avoid the problem teach process-debuginfo.in to re-compress
kernel modules correctly (crc32 checksum, 1 MiB dictionary)
so the kernel can load them directly.

Link: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=fbf5892df21a8ccfcb2fda0fd65bc3169c89ed28
Reviewed-by: Vitaly Chikunov <vt@altlinux.org>
This commit is contained in:
Алексей Шепляков 2023-10-26 16:40:19 +04:00 committed by Arseny Maslennikov
parent a3730231c5
commit 2b153b6f00

View File

@ -36,7 +36,7 @@ elif [ -z "${f##./lib/modules/*.ko.*}" ]; then
;;
xz)
unzip='xz --force --decompress'
rezip='xz --lzma2=dict=2MiB --force --keep'
rezip='xz --check=crc32 --lzma2=dict=1MiB --force --keep'
;;
zst)
unzip='zstd --quiet --force --rm --decompress'