6.1 Backport request: fbf5892df21a ("kbuild: Use CRC32 and a 1MiB dictionary for XZ compressed modules")
Hello,
please backport
commit fbf5892df21a8ccfcb2fda0fd65bc3169c89ed28
Author: Martin Nybo Andersen <[email protected]> Date: Fri Sep 15 12:15:39 2023 +0200
kbuild: Use CRC32 and a 1MiB dictionary for XZ compressed modules
Kmod is now (since kmod commit 09c9f8c5df04 ("libkmod: Use kernel decompression when available")) using the kernel decompressor, when loading compressed modules.
However, the kernel XZ decompressor is XZ Embedded, which doesn't handle CRC64 and dictionaries larger than 1MiB.
Use CRC32 and 1MiB dictionary when XZ compressing and installing kernel modules.
to the 6.1 stable kernel, and possibly older ones as well.
The commit message actually has it all, so just my story: There's a hardware that has or had issues with never kernels (no time to check), my kernel for this board is usually static. But after building a kernel with xz-compressed modules, they wouldn't load but trigger "decompression failed with status 6". Investigation led to a CRC64 check for these files, and eventually to the above commit.
The commit applies (with an offset), the resulting modules work as expected.
Kernel 6.6 and newer already have that commit. Older kernels could possibly benefit from this as well, I haven't checked.
Kind regards,
Christoph
Quoted 29 lines · Christoph Biedl
Hello,
please backport
commit
fbf5892df21a8ccfcb2fda0fd65bc3169c89ed28Author: Martin Nybo Andersen <[email protected]> Date: Fri Sep 15 12:15:39 2023 +0200kbuild: Use CRC32 and a 1MiB dictionary for XZ compressed modules
Kmod is now (since kmod commit
09c9f8c5df04("libkmod: Use kernel decompression when available")) using the kernel decompressor, when loading compressed modules.However, the kernel XZ decompressor is XZ Embedded, which doesn't handle CRC64 and dictionaries larger than 1MiB.
Use CRC32 and 1MiB dictionary when XZ compressing and installing kernel modules.
to the 6.1 stable kernel, and possibly older ones as well.
The commit message actually has it all, so just my story: There's a hardware that has or had issues with never kernels (no time to check), my kernel for this board is usually static. But after building a kernel with xz-compressed modules, they wouldn't load but trigger "decompression failed with status 6". Investigation led to a CRC64 check for these files, and eventually to the above commit.
Quoted 5 lines
The commit applies (with an offset), the resulting modules work as expected.
Kernel 6.6 and newer already have that commit. Older kernels could possibly benefit from this as well, I haven't checked.
Now queued up, thanks.
greg k-h