Skip to contentSkip to conversation

6.1 Backport request: fbf5892df21a ("kbuild: Use CRC32 and a 1MiB dictionary for XZ compressed modules")

DISCUSSION Christoph Biedl 2 participants 2 messages Dec 25, 2025 – Jan 8 Stable branch

lore
Share & tools
lore
#0 lore raw

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

#1 lore raw
Quoted 29 lines · Christoph Biedl

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.

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