Luks crypto: module aes_x86_64 not found in linux kernel 5.4.x

After updating to the latest nixos-unstable revision, I ran nixos rebuild --switch and an error showed up during the rebuild:

modprobe: FATAL: Module aes_x86_64 not found in directory /nix/store/...-linux-5.4.30-modules/lib/modules/5.4.30
...
Warning: the new NixOS configuration has an ‘init’ that is incompatible with the current configuration.
The new configuration won't take effect until you reboot the system.
warning: error(s) occurred while switching to the new configuration

It didn’t fail the build, but it sounds like rebooting could lock me out of the system.

According to this report,

The module [aes_x86_64] was removed with 5.4 [1] as it was slower than the generic implementation.

My setup uses luks to encrypt the hard drive, and aes_x86_64 is one of the modules listed in boot.initrd.luks.cryptoModules, described as:

A list of cryptographic kernel modules needed to decrypt the root device(s).
The default includes all common modules.

I’m out of my depth, and don’t want to brick my system, so I’m going to rollback and avoid the upgrade until I have a better understanding of the situation.

Has anyone else run into this? Should I report an issue in nixpkgs?

It looks like I might be able to resolve it by overriding the default cryptoModules option and omitting the missing module, but again, I’m out of my depth.


Additional context, in case it’s relevant:

cryptsetup luksFormat /dev/nvme0n1p2
cryptsetup luksOpen /dev/nvme0n1p2 crypted

and added the following to my configuration.nix:

boot.initrd.luks.devices = [
  {
    name = "root";
    device = "/dev/disk/by-uuid/<UUID here>";
    preLVM = true;
  }
];

I reported an issue in nixpkgs.