mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2026-09-22 09:34:56 +02:00
dm-verity-fec: replace {MAX,MIN}_RSN with {MIN,MAX}_ROOTS
commit 82fbd6a3e2 upstream.
Every time DM_VERITY_FEC_{MAX,MIN}_RSN are used, they are subtracted
from DM_VERITY_FEC_RSM to get the bounds on the number of roots.
Therefore, replace these with {MIN,MAX}_ROOTS constants which are more
directly useful. (Note the inversion, where MAX_RSN maps to MIN_ROOTS
and MIN_RSN maps to MAX_ROOTS.) No functional change.
Signed-off-by: Eric Biggers <ebiggers@kernel.org>
Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
d47281b9a4
commit
3f31bde63f
@@ -87,7 +87,7 @@ static int fec_decode_bufs(struct dm_verity *v, struct dm_verity_io *io,
|
||||
int r, corrected = 0, res;
|
||||
struct dm_buffer *buf;
|
||||
unsigned int n, i, j, parity_pos, to_copy;
|
||||
uint16_t par_buf[DM_VERITY_FEC_RSM - DM_VERITY_FEC_MIN_RSN];
|
||||
uint16_t par_buf[DM_VERITY_FEC_MAX_ROOTS];
|
||||
u8 *par, *block;
|
||||
u64 parity_block;
|
||||
struct bio *bio = dm_bio_from_per_bio_data(io, v->ti->per_io_data_size);
|
||||
@@ -605,8 +605,8 @@ int verity_fec_parse_opt_args(struct dm_arg_set *as, struct dm_verity *v,
|
||||
|
||||
} else if (!strcasecmp(arg_name, DM_VERITY_OPT_FEC_ROOTS)) {
|
||||
if (sscanf(arg_value, "%hhu%c", &num_c, &dummy) != 1 || !num_c ||
|
||||
num_c < (DM_VERITY_FEC_RSM - DM_VERITY_FEC_MAX_RSN) ||
|
||||
num_c > (DM_VERITY_FEC_RSM - DM_VERITY_FEC_MIN_RSN)) {
|
||||
num_c < DM_VERITY_FEC_MIN_ROOTS ||
|
||||
num_c > DM_VERITY_FEC_MAX_ROOTS) {
|
||||
ti->error = "Invalid " DM_VERITY_OPT_FEC_ROOTS;
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
@@ -13,8 +13,8 @@
|
||||
|
||||
/* Reed-Solomon(M, N) parameters */
|
||||
#define DM_VERITY_FEC_RSM 255
|
||||
#define DM_VERITY_FEC_MAX_RSN 253
|
||||
#define DM_VERITY_FEC_MIN_RSN 231 /* ~10% space overhead */
|
||||
#define DM_VERITY_FEC_MIN_ROOTS 2 /* RS(255, 253): ~0.8% space overhead */
|
||||
#define DM_VERITY_FEC_MAX_ROOTS 24 /* RS(255, 231): ~10% space overhead */
|
||||
|
||||
/* buffers for deinterleaving and decoding */
|
||||
#define DM_VERITY_FEC_BUF_PREALLOC 1 /* buffers to preallocate */
|
||||
@@ -50,8 +50,7 @@ struct dm_verity_fec {
|
||||
/* per-bio data */
|
||||
struct dm_verity_fec_io {
|
||||
struct rs_control *rs; /* Reed-Solomon state */
|
||||
/* erasures for decode_rs8 */
|
||||
int erasures[DM_VERITY_FEC_RSM - DM_VERITY_FEC_MIN_RSN + 1];
|
||||
int erasures[DM_VERITY_FEC_MAX_ROOTS + 1]; /* erasures for decode_rs8 */
|
||||
u8 *bufs[DM_VERITY_FEC_BUF_MAX]; /* bufs for deinterleaving */
|
||||
unsigned int nbufs; /* number of buffers allocated */
|
||||
u8 *output; /* buffer for corrected output */
|
||||
|
||||
Reference in New Issue
Block a user