linux-stable/drivers/mtd
Feng Kan 76c23c32e3 mtd: nand: fix ECC Correction bug for SMC ordering for NDFC driver
Fix ECC Correction bug where the byte offset location were double
fliped causing correction routine to toggle the wrong byte location
in the ECC segment. The ndfc_calculate_ecc routine change the order
of getting the ECC code.
        /* The NDFC uses Smart Media (SMC) bytes order */
        ecc_code[0] = p[2];
        ecc_code[1] = p[1];
        ecc_code[2] = p[3];
But in the Correction algorithm when calculating the byte offset
location, the b1 is used as the upper part of the address. Which
again reverse the order making the final byte offset address
location incorrect.
	byte_addr = (addressbits[b1] << 4) + addressbits[b0];
The order is change to read it in straight and let the correction
function to revert it to SMC order.

Cc: stable@kernel.org
Signed-off-by: Feng Kan <fkan@amcc.com>
Acked-by: Victor Gallardo <vgallardo@amcc.com>
Acked-by: Prodyut Hazarika <phazarika@amcc.com>
Acked-by: Stefan Roese <sr@denx.de>
Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
2009-09-19 14:15:00 -07:00
..
chips mtd: jedec_probe: fix NEC uPD29F064115 detection 2009-09-19 11:25:56 -07:00
devices phram: cleanup error handling and associated messages 2009-09-19 13:11:12 -07:00
lpddr [MTD] [LPDDR] qinfo_probe depends on lpddr 2009-01-11 10:42:32 +00:00
maps mtd: maps: add mtd-ram support to physmap_of 2009-09-19 13:15:26 -07:00
nand mtd: nand: fix ECC Correction bug for SMC ordering for NDFC driver 2009-09-19 14:15:00 -07:00
onenand mtd: onenand: make onenand/generic.c more generic 2009-09-19 11:07:50 -07:00
tests mtd: tests: fix read buffer overflows 2009-09-04 09:40:17 +01:00
ubi UBI: compatible fallback in absense of sequence numbers 2009-07-24 20:08:52 +03:00
afs.c mtd: afs: fix build warning 2009-09-04 09:38:14 +01:00
ar7part.c [MTD] mtdpart: Make all partition parsers return allocated array 2009-03-20 18:55:17 +00:00
cmdlinepart.c mtd: cmdlineparts: Use 64-bit format when printing a debug message. 2009-06-25 08:18:12 +01:00
ftl.c [MTD] Remove strange u_int32_t types from FTL 2008-12-10 14:06:42 +00:00
inftlcore.c mtd: Use BLOCK_NIL consistently in NFTL/INFTL 2009-06-27 09:22:10 +01:00
inftlmount.c [MTD] we don't need no misc devices 2009-03-20 13:16:26 +00:00
internal.h NOMMU: Present backing device capabilities for MTD chardevs 2009-03-24 09:00:19 +00:00
Kconfig mtd: fix order of TEST/PARTITIONS kconfig options 2009-09-19 11:53:31 -07:00
Makefile NOMMU: Present backing device capabilities for MTD chardevs 2009-03-24 09:00:19 +00:00
mtd_blkdevs.c mtd: blkdevs: do not forget to get MTD devices 2009-08-03 14:20:26 +01:00
mtdbdi.c NOMMU: Present backing device capabilities for MTD chardevs 2009-03-24 09:00:19 +00:00
mtdblock.c mtd: fix a typo in comment 2009-09-04 09:34:49 +01:00
mtdblock_ro.c MTD/JFFS2: remove CVS keywords 2008-06-04 17:50:17 +01:00
mtdchar.c mtd: Fix pointer handling in compat ioctls to use compat_ptr() 2009-05-29 16:09:08 +01:00
mtdconcat.c mtd: mtdconcat: prevent a read from eraseregions[-1] 2009-09-19 11:18:46 -07:00
mtdcore.c mtd: make few symbols static 2009-09-04 09:40:46 +01:00
mtdcore.h
mtdoops.c [MTD] mtdoops: fix a bit of spin lock usage 2009-03-20 18:39:25 +00:00
mtdpart.c mtd: mtdpart: prevent a read from regions[-1] 2009-09-19 11:23:26 -07:00
mtdsuper.c Convert obvious places to deactivate_locked_super() 2009-05-09 10:49:40 -04:00
nftlcore.c mtd: nftl: fix offset alignments 2009-09-03 14:59:16 +01:00
nftlmount.c [MTD] update internal API to support 64-bit device size 2008-12-10 13:37:21 +00:00
ofpart.c mtd: ofpart: Check availability of reg property instead of name property 2009-09-19 14:14:48 -07:00
redboot.c Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6 2008-07-11 14:36:25 +01:00
rfd_ftl.c [MTD] remove private wrapper of endian helpers in rfd_ftl.c 2008-12-10 15:39:09 +00:00
ssfdc.c [MTD] update internal API to support 64-bit device size 2008-12-10 13:37:21 +00:00