diff options
author | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-10-23 11:56:50 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-10-23 11:56:50 -0400 |
commit | 6e506079c80c96dc9f813491231433762fbad91d (patch) | |
tree | ea03c201049d60f0b366657f01603f54e17c11e0 /lib | |
parent | f3344c54cee4c446a39d046e47707ed9d259f72c (diff) | |
parent | 5a37cf19efcceae14c2078449e35b9f4eb3e63e4 (diff) |
Merge git://git.infradead.org/mtd-2.6
* git://git.infradead.org/mtd-2.6:
[MTD] [NOR] Fix deadlock in Intel chip driver caused by get_chip recursion
[JFFS2] Fix return value from jffs2_write_end()
[MTD] [OneNAND] Fix wrong free the static address in onenand_sim
[MTD] [NAND] Replace -1 with -EBADMSG in nand error correction code
[RSLIB] BUG() when passing illegal parameters to decode_rs8() or decode_rs16()
[MTD] [NAND] treat any negative return value from correct() as an error
[MTD] [NAND] nandsim: bugfix in initialization
[MTD] Fix typo in Alauda config option help text.
[MTD] [NAND] add s3c2440-specific read_buf/write_buf
[MTD] [OneNAND] onenand-sim: fix kernel-doc and typos
[JFFS2] Tidy up fix for ACL/permissions problem.
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, |