diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/reed_solomon/decode_rs.c | 5 | ||||
-rw-r--r-- | lib/reed_solomon/reed_solomon.c | 2 |
2 files changed, 4 insertions, 3 deletions
diff --git a/lib/reed_solomon/decode_rs.c b/lib/reed_solomon/decode_rs.c index a58df56f09b6..0ec3f257ffdf 100644 --- a/lib/reed_solomon/decode_rs.c +++ b/lib/reed_solomon/decode_rs.c | |||
@@ -39,8 +39,7 @@ | |||
39 | 39 | ||
40 | /* Check length parameter for validity */ | 40 | /* Check length parameter for validity */ |
41 | pad = nn - nroots - len; | 41 | pad = nn - nroots - len; |
42 | if (pad < 0 || pad >= nn) | 42 | BUG_ON(pad < 0 || pad >= nn); |
43 | return -ERANGE; | ||
44 | 43 | ||
45 | /* Does the caller provide the syndrome ? */ | 44 | /* Does the caller provide the syndrome ? */ |
46 | if (s != NULL) | 45 | if (s != NULL) |
@@ -203,7 +202,7 @@ | |||
203 | * deg(lambda) unequal to number of roots => uncorrectable | 202 | * deg(lambda) unequal to number of roots => uncorrectable |
204 | * error detected | 203 | * error detected |
205 | */ | 204 | */ |
206 | count = -1; | 205 | count = -EBADMSG; |
207 | goto finish; | 206 | goto finish; |
208 | } | 207 | } |
209 | /* | 208 | /* |
diff --git a/lib/reed_solomon/reed_solomon.c b/lib/reed_solomon/reed_solomon.c index 5b0d8522b7ca..3ea2db94d5b0 100644 --- a/lib/reed_solomon/reed_solomon.c +++ b/lib/reed_solomon/reed_solomon.c | |||
@@ -320,6 +320,7 @@ EXPORT_SYMBOL_GPL(encode_rs8); | |||
320 | * The syndrome and parity uses a uint16_t data type to enable | 320 | * The syndrome and parity uses a uint16_t data type to enable |
321 | * symbol size > 8. The calling code must take care of decoding of the | 321 | * symbol size > 8. The calling code must take care of decoding of the |
322 | * syndrome result and the received parity before calling this code. | 322 | * syndrome result and the received parity before calling this code. |
323 | * Returns the number of corrected bits or -EBADMSG for uncorrectable errors. | ||
323 | */ | 324 | */ |
324 | int decode_rs8(struct rs_control *rs, uint8_t *data, uint16_t *par, int len, | 325 | int decode_rs8(struct rs_control *rs, uint8_t *data, uint16_t *par, int len, |
325 | uint16_t *s, int no_eras, int *eras_pos, uint16_t invmsk, | 326 | uint16_t *s, int no_eras, int *eras_pos, uint16_t invmsk, |
@@ -363,6 +364,7 @@ EXPORT_SYMBOL_GPL(encode_rs16); | |||
363 | * @corr: buffer to store correction bitmask on eras_pos | 364 | * @corr: buffer to store correction bitmask on eras_pos |
364 | * | 365 | * |
365 | * Each field in the data array contains up to symbol size bits of valid data. | 366 | * Each field in the data array contains up to symbol size bits of valid data. |
367 | * Returns the number of corrected bits or -EBADMSG for uncorrectable errors. | ||
366 | */ | 368 | */ |
367 | int decode_rs16(struct rs_control *rs, uint16_t *data, uint16_t *par, int len, | 369 | int decode_rs16(struct rs_control *rs, uint16_t *data, uint16_t *par, int len, |
368 | uint16_t *s, int no_eras, int *eras_pos, uint16_t invmsk, | 370 | uint16_t *s, int no_eras, int *eras_pos, uint16_t invmsk, |