diff options
author | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-10-23 17:56:50 +0200 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-10-23 17:56:50 +0200 |
commit | 6e506079c80c96dc9f813491231433762fbad91d (patch) | |
tree | ea03c201049d60f0b366657f01603f54e17c11e0 /lib | |
parent | Merge branch 'for-linus' of ssh://master.kernel.org/pub/scm/linux/kernel/git/... (diff) | |
parent | [MTD] [NOR] Fix deadlock in Intel chip driver caused by get_chip recursion (diff) | |
download | linux-6e506079c80c96dc9f813491231433762fbad91d.tar.xz linux-6e506079c80c96dc9f813491231433762fbad91d.zip |
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 @@ /* Check length parameter for validity */ pad = nn - nroots - len; - if (pad < 0 || pad >= nn) - return -ERANGE; + BUG_ON(pad < 0 || pad >= nn); /* Does the caller provide the syndrome ? */ if (s != NULL) @@ -203,7 +202,7 @@ * deg(lambda) unequal to number of roots => uncorrectable * error detected */ - count = -1; + count = -EBADMSG; goto finish; } /* 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); * The syndrome and parity uses a uint16_t data type to enable * symbol size > 8. The calling code must take care of decoding of the * syndrome result and the received parity before calling this code. + * Returns the number of corrected bits or -EBADMSG for uncorrectable errors. */ int decode_rs8(struct rs_control *rs, uint8_t *data, uint16_t *par, int len, uint16_t *s, int no_eras, int *eras_pos, uint16_t invmsk, @@ -363,6 +364,7 @@ EXPORT_SYMBOL_GPL(encode_rs16); * @corr: buffer to store correction bitmask on eras_pos * * Each field in the data array contains up to symbol size bits of valid data. + * Returns the number of corrected bits or -EBADMSG for uncorrectable errors. */ int decode_rs16(struct rs_control *rs, uint16_t *data, uint16_t *par, int len, uint16_t *s, int no_eras, int *eras_pos, uint16_t invmsk, |