Subject: linux-libre 4.20+ fails to mount ext4 on aarch64
From: Vagrant Cascadian <[email-masked]>
To: [email-masked]
Date: Mon, 21 Jan 2019 11:48:47 -0800
List-Id: <debbugs-submit.debbugs.gnu.org>

After upgrading to linux-libre 4.20, and again tested with 4.20.3, an
aarch64 system failed to boot (using 4.19.10 worked fine):

[    3.692351] device-mapper: ioctl: 4.39.0-ioctl (2018-04-03) initialised: [email-masked]
ext2fs_check_if_mount: Can't check if filesystem is mounted due to missing mtab file while determining whether /dev/sda6 is mounted.
/dev/sda6: clean, 596262/6553600 files, 7663147/26214400 blocks
[    3.948786] EXT4-fs (sda6): Cannot load crc32c driver.
ERROR: In procedure mount:
In procedure mount: No such file or directory

Entering a new prompt.  Type `,bt' for a backtrace or `,q' to continue.
GNU Guile 2.2.4
Copyright (C) 1995-2017 Free Software Foundation, Inc.

Guile comes with ABSOLUTELY NO WARRANTY; for details type `,show w'.
This program is free software, and you are welcome to redistribute it
under certain conditions; type `,show c' for details.

Enter `,help' for help.
scheme@(guile-user)>

Workaround or fix was to add to config.scm:

(initrd (append (list "crc32c_generic" ... ) %base-initrd-modules))

4.19.10 and earlier worked fine without this addition; as far as I can
see the relevent kernel configurations are all present; but some
behavior changed with the ext4 driver; Is the initrd no longer including
soft module dependencies? (e.g. for optional ext4 features)

This seems similar to Debian bug:

  https://bugs.debian.org/819725

live well,
  vagrant