Dear Maintainer, I rebuilt a linux-image package with the patch applied and the submitters' cryptsetup command finished without visible error to me. (console output and dmesg in second half of attached file.)
Due to my limited knowledge of cryptsetup I guess Jerad could better judge if the resulting device is working properly afterwards. Kind regards, Bernhard
# Unstable amd64 qemu VM 2020-01-06 apt-mark hold kmod libkmod2 #Bug 948257 apt update apt dist-upgrade fdisk /dev/sdb mkfs.ext4 /dev/sdX1 mkdir /home/benutzer/source mount /dev/sdb1 /home/benutzer/source chown benutzer:benutzer /home/benutzer/source apt install linux-image-5.4.0-2-amd64-unsigned systemd-coredump mc htop strace cryptsetup fakeroot apt build-dep linux-image-5.4.0-2-amd64-unsigned dpkg --purge linux-image-5.3.0-3-amd64 linux-image-5.4.0-1-amd64 linux-image-amd64 linux-image-5.4.0-2-amd64-unsigned mkdir /home/benutzer/source/linux-image-5.4.0-2-amd64-unsigned/orig -p cd /home/benutzer/source/linux-image-5.4.0-2-amd64-unsigned/orig apt source linux-image-5.4.0-2-amd64-unsigned cd ############ ############ # 1. Without patch cd /home/benutzer/source/linux-image-5.4.0-2-amd64-unsigned cp orig try1 -a cd try1/linux-5.4.8 fakeroot debian/rules source sed -i 's@debian/bin/buildcheck.py @-debian/bin/buildcheck.py @g' debian/rules.real time fakeroot make -j`nproc` -f debian/rules.gen binary-arch_amd64_none_amd64 ~ 1h ~25 GB dpkg -i /home/benutzer/source/linux-image-5.4.0-2-amd64-unsigned/try1/linux-image-5.4.0-2-amd64-unsigned_5.4.8-1_amd64.deb reboot truncate -s 400M /tmp/test losetup /dev/loop0 /tmp/test export LANG=C cryptsetup luksFormat \ --cipher=twofish-xts-benbi \ --hash=sha512 \ --verify-passphrase \ --key-size=512 \ --use-random \ --type=luks2 \ --pbkdf=argon2id \ --pbkdf-memory=1048576 \ --pbkdf-parallel=4 \ --pbkdf-force-iterations=5 \ --integrity=hmac-sha256 \ --integrity-no-journal \ --sector-size=4096 \ /dev/loop0 losetup -d /dev/loop0 rm /tmp/test [Mo Jan 6 20:08:28 2020] loop: module loaded [Mo Jan 6 20:08:36 2020] device-mapper: uevent: version 1.0.3 [Mo Jan 6 20:08:36 2020] device-mapper: ioctl: 4.41.0-ioctl (2019-09-16) initialised: dm-de...@redhat.com [Mo Jan 6 20:08:36 2020] NET: Registered protocol family 38 [Mo Jan 6 20:08:36 2020] cryptd: max_cpu_qlen set to 1000 [Mo Jan 6 20:08:36 2020] CPU feature 'AVX registers' is not supported. [Mo Jan 6 20:08:36 2020] xor: measuring software checksum speed [Mo Jan 6 20:08:36 2020] prefetch64-sse: 17846.000 MB/sec [Mo Jan 6 20:08:36 2020] generic_sse: 16337.000 MB/sec [Mo Jan 6 20:08:36 2020] xor: using function: prefetch64-sse (17846.000 MB/sec) [Mo Jan 6 20:08:36 2020] async_tx: api initialized (async) [Mo Jan 6 20:08:38 2020] alg: No test for authenc(hmac(sha256),xts(twofish)) (authenc(hmac(sha256-generic),xts(ecb-twofish-3way))) [Mo Jan 6 20:08:38 2020] device-mapper: table: 254:1: crypt: Error creating IV [Mo Jan 6 20:08:38 2020] device-mapper: ioctl: error adding target to table [Mo Jan 6 20:09:50 2020] BUG: unable to handle page fault for address: 0000004000000024 [Mo Jan 6 20:09:50 2020] #PF: supervisor read access in kernel mode [Mo Jan 6 20:09:50 2020] #PF: error_code(0x0000) - not-present page [Mo Jan 6 20:09:50 2020] PGD 0 P4D 0 [Mo Jan 6 20:09:50 2020] Oops: 0000 [#1] SMP NOPTI [Mo Jan 6 20:09:50 2020] CPU: 4 PID: 665 Comm: cryptsetup Tainted: G E 5.4.0-2-amd64 #1 Debian 5.4.8-1 [Mo Jan 6 20:09:50 2020] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.12.0-1 04/01/2014 [Mo Jan 6 20:09:50 2020] RIP: 0010:crypt_iv_benbi_ctr+0x18/0x60 [dm_crypt] ############ ############ # 2. With patch cd /home/benutzer/source/linux-image-5.4.0-2-amd64-unsigned cp orig try2 -a cd try2/linux-5.4.8 fakeroot debian/rules source sed -i 's@debian/bin/buildcheck.py @-debian/bin/buildcheck.py @g' debian/rules.real wget "https://git.kernel.org/pub/scm/linux/kernel/git/mbroz/linux.git/patch/?id=c3563cd7350dff811543cbc275547a7f878a6c3a" -O ../c3563cd7350dff811543cbc275547a7f878a6c3a.patch patch -p1 < ../c3563cd7350dff811543cbc275547a7f878a6c3a.patch time fakeroot make -j`nproc` -f debian/rules.gen binary-arch_amd64_none_amd64 real 61m33,973s user 240m28,026s sys 33m8,348s du -sh . 25G . dpkg -i /home/benutzer/source/linux-image-5.4.0-2-amd64-unsigned/try2/linux-image-5.4.0-2-amd64-unsigned_5.4.8-1_amd64.deb reboot truncate -s 400M /tmp/test losetup /dev/loop0 /tmp/test export LANG=C cryptsetup luksFormat \ --cipher=twofish-xts-benbi \ --hash=sha512 \ --verify-passphrase \ --key-size=512 \ --use-random \ --type=luks2 \ --pbkdf=argon2id \ --pbkdf-memory=1048576 \ --pbkdf-parallel=4 \ --pbkdf-force-iterations=5 \ --integrity=hmac-sha256 \ --integrity-no-journal \ --sector-size=4096 \ /dev/loop0 losetup -d /dev/loop0 rm /tmp/test root@debian:~# truncate -s 400M /tmp/test root@debian:~# losetup /dev/loop0 /tmp/test root@debian:~# root@debian:~# export LANG=C root@debian:~# cryptsetup luksFormat \ > --cipher=twofish-xts-benbi \ > --hash=sha512 \ > --verify-passphrase \ > --key-size=512 \ > --use-random \ > --type=luks2 \ > --pbkdf=argon2id \ > --pbkdf-memory=1048576 \ > --pbkdf-parallel=4 \ > --pbkdf-force-iterations=5 \ > --integrity=hmac-sha256 \ > --integrity-no-journal \ > --sector-size=4096 \ > /dev/loop0 WARNING! ======== This will overwrite data on /dev/loop0 irrevocably. Are you sure? (Type uppercase yes): YES Enter passphrase for /tmp/test: Verify passphrase: Wiping device to initialize integrity checksum. You can interrupt this by pressing CTRL+c (rest of not wiped device will contain invalid checksum). Finished, time 00:02.586, 377 MiB written, speed 146.1 MiB/s root@debian:~# [Di Jan 7 12:01:10 2020] loop: module loaded [Di Jan 7 12:01:25 2020] device-mapper: uevent: version 1.0.3 [Di Jan 7 12:01:25 2020] device-mapper: ioctl: 4.41.0-ioctl (2019-09-16) initialised: dm-de...@redhat.com [Di Jan 7 12:01:25 2020] NET: Registered protocol family 38 [Di Jan 7 12:01:25 2020] cryptd: max_cpu_qlen set to 1000 [Di Jan 7 12:01:25 2020] CPU feature 'AVX registers' is not supported. [Di Jan 7 12:01:25 2020] xor: measuring software checksum speed [Di Jan 7 12:01:25 2020] prefetch64-sse: 17943.000 MB/sec [Di Jan 7 12:01:25 2020] generic_sse: 16228.000 MB/sec [Di Jan 7 12:01:25 2020] xor: using function: prefetch64-sse (17943.000 MB/sec) [Di Jan 7 12:01:25 2020] async_tx: api initialized (async) [Di Jan 7 12:01:27 2020] alg: No test for authenc(hmac(sha256),xts(twofish)) (authenc(hmac(sha256-generic),xts(ecb-twofish-3way)))