commit 82fbd6a3e29a329d439690cd7ccc4162c9cd8db6 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 <[email protected]>
Signed-off-by: Mikulas Patocka <[email protected]>
---
 drivers/md/dm-verity-fec.c | 6 +++---
 drivers/md/dm-verity-fec.h | 7 +++----
 2 files changed, 6 insertions(+), 7 deletions(-)

diff --git a/drivers/md/dm-verity-fec.c b/drivers/md/dm-verity-fec.c
index a8fbf97b97517..cebcc8fd25d70 100644
--- a/drivers/md/dm-verity-fec.c
+++ b/drivers/md/dm-verity-fec.c
@@ -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;
                }
diff --git a/drivers/md/dm-verity-fec.h b/drivers/md/dm-verity-fec.h
index 90a0af3f35d31..b3460103e0e10 100644
--- a/drivers/md/dm-verity-fec.h
+++ b/drivers/md/dm-verity-fec.h
@@ -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 */
-- 
2.55.0


Reply via email to