Skip to content

dm-verity: more FEC fixes and cleanups

Eric Biggers dm-devel lkml stable 1 version In review

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 Latest22 patches 7 repliesIn review

Patches in v1 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/22dm-verity-fec: correctly reject too-small FEC devicesdrivers/md/dm-verity-fec.c+2 -30 replies
2/22dm-verity-fec: correctly reject too-small hash devicesdrivers/md/dm-verity-fec.c+2 -10 replies
3/22dm-verity-fec: fix corrected block count statdrivers/md/dm-verity-fec.c+2 -30 replies
4/22dm-verity-fec: fix the size of dm_verity_fec_io::erasuresdrivers/md/dm-verity-fec.h+2 -10 replies
5/22dm-verity-fec: fix reading parity bytes split across blocks (take 3)drivers/md/dm-verity-fec.c+44 -560 replies
6/22dm-verity: rename dm_verity::hash_blocks to dm_verity::hash_enddrivers/md/dm-verity-fec.c drivers/md/dm-verity-target.c drivers/md/dm-verity.h+7 -70 replies
7/22dm-verity-fec: improve documentation for Forward Error CorrectionDocumentation/admin-guide/device-mapper/verity.rst+102 -200 replies
8/22dm-verity-fec: replace {MAX,MIN}_RSN with {MIN,MAX}_ROOTSdrivers/md/dm-verity-fec.c drivers/md/dm-verity-fec.h+6 -70 replies
9/22dm-verity-fec: use standard names for Reed-Solomon parametersdrivers/md/dm-verity-fec.c drivers/md/dm-verity-fec.h+19 -190 replies
10/22dm-verity-fec: rename "RS block" to "RS codeword"drivers/md/dm-verity-fec.c drivers/md/dm-verity-fec.h+35 -330 replies
11/22dm-verity-fec: replace io_size with block_sizedrivers/md/dm-verity-fec.c drivers/md/dm-verity-fec.h+14 -180 replies
12/22dm-verity-fec: rename rounds to region_blocksdrivers/md/dm-verity-fec.c drivers/md/dm-verity-fec.h+9 -90 replies
13/22dm-verity-fec: simplify computation of rsbdrivers/md/dm-verity-fec.c+3 -30 replies
14/22dm-verity-fec: simplify computation of ileaveddrivers/md/dm-verity-fec.c+1 -120 replies
15/22dm-verity-fec: simplify deinterleavingdrivers/md/dm-verity-fec.c+4 -150 replies
16/22dm-verity-fec: rename block_offset to out_posdrivers/md/dm-verity-fec.c+13 -150 replies
17/22dm-verity-fec: move computation of offset and rsb down a leveldrivers/md/dm-verity-fec.c+18 -280 replies
18/22dm-verity-fec: compute target region directlydrivers/md/dm-verity-fec.c+16 -210 replies
19/22dm-verity-fec: pass down index_in_region instead of rsbdrivers/md/dm-verity-fec.c+26 -210 replies
20/22dm-verity-fec: make fec_decode_bufs() just return 0 or errordrivers/md/dm-verity-fec.c+4 -70 replies
21/22dm-verity-fec: log target_block instead of index_in_regiondrivers/md/dm-verity-fec.c+14 -120 replies
22/22dm-verity-fec: improve comments for fec_read_bufs()drivers/md/dm-verity-fec.c+22 -80 replies

Reviews trailers per patch

None of the 22 patches has a Reviewed-by or Acked-by of their own; the series has one for all of them.

PatchSami Tolvanen
SeriesR-b
1/22
2/22
3/22
4/22
5/22
6/22
7/22
8/22
9/22
10/22
11/22
12/22
13/22
14/22
15/22
16/22
17/22
18/22
19/22
20/22
21/22
22/22

Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes.

Read the v1 thread

Cover letter [PATCH 00/22] dm-verity: more FEC fixes and cleanups

This series applies to linux-dm/for-next. It can also be retrieved from:

    git fetch https://git.kernel.org/pub/scm/linux/kernel/git/ebiggers/linux.git dm-verity-fec-2026-02-05

Patches 1-5 fix bugs in dm-verity's forward error correction (FEC):

- FEC and hash devices that are too small were not rejected.

- Corrected blocks could be multiple-counted in statistics.

- The erasures array was significantly oversized for its use case.

- An out-of-bounds read could occur when decoding an RS codeword whose parity bytes span a block boundary.

Patches 6-22 clean up the FEC implementation to be easier to understand and improve documentation and log messages.

Eric Biggers (22):
dm-verity-fec: correctly reject too-small FEC devices
dm-verity-fec: correctly reject too-small hash devices
dm-verity-fec: fix corrected block count stat
dm-verity-fec: fix the size of dm_verity_fec_io::erasures
dm-verity-fec: fix reading parity bytes split across blocks (take 3)
dm-verity: rename dm_verity::hash_blocks to dm_verity::hash_end
dm-verity-fec: improve documentation for Forward Error Correction
dm-verity-fec: replace {MAX,MIN}_RSN with {MIN,MAX}_ROOTS
dm-verity-fec: use standard names for Reed-Solomon parameters
dm-verity-fec: rename "RS block" to "RS codeword"
dm-verity-fec: replace io_size with block_size
dm-verity-fec: rename rounds to region_blocks
dm-verity-fec: simplify computation of rsb
dm-verity-fec: simplify computation of ileaved
dm-verity-fec: simplify deinterleaving
dm-verity-fec: rename block_offset to out_pos
dm-verity-fec: move computation of offset and rsb down a level
dm-verity-fec: compute target region directly
dm-verity-fec: pass down index_in_region instead of rsb
dm-verity-fec: make fec_decode_bufs() just return 0 or error
dm-verity-fec: log target_block instead of index_in_region
dm-verity-fec: improve comments for fec_read_bufs()

 .../admin-guide/device-mapper/verity.rst      | 122 +++++-
 drivers/md/dm-verity-fec.c                    | 380 ++++++++----------
 drivers/md/dm-verity-fec.h                    |  28 +-
 drivers/md/dm-verity-target.c                 |   8 +-
 drivers/md/dm-verity.h                        |   4 +-
 5 files changed, 294 insertions(+), 248 deletions(-)

base-commit: 218b16992a37ea97b9e09b7659a25a864fb9976f

Signature · 1 line
2.52.0