mirror_ubuntu-kernels/drivers/mtd/nand/raw
Álvaro Fernández Rojas f5200c1424 mtd: rawnand: brcmnand: fix OOB R/W with Hamming ECC
Hamming ECC doesn't cover the OOB data, so reading or writing OOB shall
always be done without ECC enabled.
This is a problem when adding JFFS2 cleanmarkers to erased blocks. If JFFS2
clenmarkers are added to the OOB with ECC enabled, OOB bytes will be changed
from ff ff ff to 00 00 00, reporting incorrect ECC errors.

Fixes: 27c5b17cd1 ("mtd: nand: add NAND driver "library" for Broadcom STB NAND controller")
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
Acked-by: Brian Norris <computersforpeace@gmail.com>
Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
Link: https://lore.kernel.org/linux-mtd/20210224080210.23686-1-noltari@gmail.com
2021-03-11 09:37:30 +01:00
..
atmel mtd: rawnand: atmel: Check return values for nand_read_data_op 2020-09-30 16:44:17 +02:00
bcm47xxnflash mtd: rawnand: Use the new ECC engine type enumeration 2020-09-28 15:59:42 +02:00
brcmnand mtd: rawnand: brcmnand: fix OOB R/W with Hamming ECC 2021-03-11 09:37:30 +01:00
gpmi-nand mtd: rawnand: gpmi: fix dst bit offset when extracting raw payload 2021-01-04 12:08:32 +01:00
ingenic mtd: rawnand: ingenic: remove redundant get_device() in ingenic_ecc_get() 2020-12-10 22:37:31 +01:00
ams-delta.c mtd: rawnand: ams-delta: Do not force a particular software ECC engine 2020-12-11 20:09:57 +01:00
arasan-nand-controller.c mtd: rawnand: arasan: Document 'anfc_op's 'buf' member 2020-11-20 12:37:33 +01:00
au1550nd.c MTD core: 2020-12-16 14:58:35 -08:00
cadence-nand-controller.c mtd: rawnand: cadence: remove a redundant dev_err call 2020-09-30 16:44:17 +02:00
cafe_nand.c mtd: rawnand: cafe_nand: Remove superfluous param doc and add another 2020-11-20 12:37:32 +01:00
cs553x_nand.c mtd: nand: ecc-hamming: Rename the exported functions 2020-12-10 22:37:29 +01:00
davinci_nand.c mtd: rawnand: davinci: Do not use extra dereferencing 2020-12-10 22:37:32 +01:00
denali_dt.c mtd: rawnand: denali_dt: add reset controlling 2020-01-21 20:00:33 +01:00
denali_pci.c mtd: rawnand: Use the NAND framework user_conf object for ECC flags 2020-09-30 16:44:15 +02:00
denali.c mtd: rawnand: Use the new ECC engine type enumeration 2020-09-28 15:59:42 +02:00
denali.h mtd: rawnand: Replace zero-length array with flexible-array member 2020-03-11 16:17:54 +01:00
diskonchip.c SPI NOR core changes: 2020-12-16 18:48:16 +01:00
fsl_elbc_nand.c mtd: nand: ecc-hamming: Remove useless includes 2020-12-10 22:37:30 +01:00
fsl_ifc_nand.c mtd: nand: ecc-hamming: Remove useless includes 2020-12-10 22:37:30 +01:00
fsl_upm.c mtd: nand: ecc-hamming: Remove useless includes 2020-12-10 22:37:30 +01:00
fsmc_nand.c mtd: rawnand: fsmc: Fix error code in fsmc_nand_probe() 2021-03-11 09:37:29 +01:00
gpio.c mtd: rawnand: gpio: Do not force a particular software ECC engine 2020-12-11 20:09:57 +01:00
hisi504_nand.c mtd: rawnand: Use the new ECC engine type enumeration 2020-09-28 15:59:42 +02:00
intel-nand-controller.c MTD core changes: 2021-02-21 13:54:33 -08:00
internals.h mtd: rawnand: Allocate the interface configurations dynamically 2020-06-26 08:35:08 +02:00
Kconfig MTD core changes: 2021-02-21 13:54:33 -08:00
lpc32xx_mlc.c mtd: nand: ecc-hamming: Remove useless includes 2020-12-10 22:37:30 +01:00
lpc32xx_slc.c mtd: nand: ecc-hamming: Remove useless includes 2020-12-10 22:37:30 +01:00
Makefile mtd: rawnand: tango: Remove the driver 2021-02-01 18:59:19 +01:00
marvell_nand.c mtd: rawnand: marvell: convert comma to semicolon 2021-02-01 18:59:19 +01:00
meson_nand.c mtd: rawnand: meson: Fix a resource leak in init 2020-12-10 22:37:33 +01:00
mpc5121_nfc.c mtd: rawnand: mpc5121: Do not force a particular software ECC engine 2020-12-11 20:09:58 +01:00
mtk_ecc.c mtd: Remove dev_err() usage after platform_get_irq() 2019-10-08 19:01:49 +02:00
mtk_ecc.h mtd: rawnand: mtk: Re-license MTK NAND driver as Dual MIT/GPL 2019-06-27 20:07:46 +02:00
mtk_nand.c mtd: rawnand: Use nanddev_get/set_ecc_requirements() when relevant 2020-09-28 15:59:48 +02:00
mxc_nand.c mtd: rawnand: mxc: Convert comma to semicolon 2021-01-04 11:02:39 +01:00
mxic_nand.c mtd: nand: ecc-hamming: Move Hamming code to the generic NAND layer 2020-12-10 22:37:29 +01:00
nand_amd.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 157 2019-05-30 11:26:37 -07:00
nand_base.c mtd: nand: fix error handling in nand_prog_page_op() #2 2021-03-11 09:37:29 +01:00
nand_bbt.c mtd: rawnand: fix a kernel-doc markup 2020-12-10 22:37:31 +01:00
nand_esmt.c mtd: rawnand: Use nanddev_get/set_ecc_requirements() when relevant 2020-09-28 15:59:48 +02:00
nand_hynix.c mtd: rawnand: Use nanddev_get/set_ecc_requirements() when relevant 2020-09-28 15:59:48 +02:00
nand_ids.c mtd: rawnand: toshiba: Choose the interface configuration for TH58NVG2S3HBAI4 2020-06-26 08:35:08 +02:00
nand_jedec.c mtd: rawnand: Use nanddev_get/set_ecc_requirements() when relevant 2020-09-28 15:59:48 +02:00
nand_legacy.c mtd: onenand: Use mtd->oops_panic_write as condition 2020-12-10 22:37:32 +01:00
nand_macronix.c mtd: rawnand: Create a nand_chip operations structure 2020-06-26 08:35:04 +02:00
nand_micron.c mtd: rawnand: Use nanddev_get/set_ecc_requirements() when relevant 2020-09-28 15:59:48 +02:00
nand_onfi.c mtd: rawnand: Use nanddev_get/set_ecc_requirements() when relevant 2020-09-28 15:59:48 +02:00
nand_samsung.c mtd: rawnand: Use nanddev_get/set_ecc_requirements() when relevant 2020-09-28 15:59:48 +02:00
nand_timings.c mtd: rawnand: Allocate the interface configurations dynamically 2020-06-26 08:35:08 +02:00
nand_toshiba.c mtd: rawnand: Use the ECC framework OOB layouts 2020-09-30 16:43:52 +02:00
nandsim.c mtd: rawnand: nandsim: Fix the logic when selecting Hamming soft ECC engine 2021-01-14 16:44:37 +01:00
ndfc.c mtd: nand: ecc-hamming: Rename the exported functions 2020-12-10 22:37:29 +01:00
omap2.c mtd: rawnand: omap: Use ECC information from the generic structures 2021-03-11 09:37:28 +01:00
omap_elm.c mtd: rawnand: omap_elm: Finish half populated function header, demote empty ones 2020-11-20 12:37:32 +01:00
orion_nand.c mtd: rawnand: orion: Do not force a particular software ECC engine 2020-12-11 20:09:58 +01:00
oxnas_nand.c mtd: rawnand: oxnas: cleanup/simplify code 2020-09-30 16:44:16 +02:00
pasemi_nand.c MTD core: 2020-12-16 14:58:35 -08:00
plat_nand.c mtd: rawnand: plat_nand: Do not force a particular software ECC engine 2020-12-11 20:10:01 +01:00
qcom_nandc.c mtd: rawnand: qcom: update last code word register 2021-03-11 09:37:30 +01:00
r852.c mtd: rawnand: r852: Move the ECC initialization to ->attach_chip() 2020-11-20 12:30:53 +01:00
r852.h mtd: rawnand: r852: Move the ECC initialization to ->attach_chip() 2020-11-20 12:30:53 +01:00
rockchip-nand-controller.c mtd: rawnand: rockchip: NFC driver for RK3308, RK2928 and others 2020-12-10 22:37:33 +01:00
s3c2410.c SPI NOR core changes: 2020-12-16 18:48:16 +01:00
sh_flctl.c mtd: rawnand: Use the new ECC engine type enumeration 2020-09-28 15:59:42 +02:00
sharpsl.c mtd: nand: ecc-hamming: Remove useless includes 2020-12-10 22:37:30 +01:00
sm_common.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
sm_common.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
socrates_nand.c mtd: rawnand: socrates: Do not force a particular software ECC engine 2020-12-11 20:10:02 +01:00
stm32_fmc2_nand.c mtd: rawnand: stm32_fmc2: fix broken ECC 2020-10-30 18:24:51 +01:00
sunxi_nand.c SPI NOR core changes: 2020-12-16 18:48:16 +01:00
tegra_nand.c mtd: rawnand: Use the NAND framework user_conf object for ECC flags 2020-09-30 16:44:15 +02:00
tmio_nand.c mtd: nand: ecc-hamming: Remove useless includes 2020-12-10 22:37:30 +01:00
txx9ndfmc.c mtd: nand: ecc-hamming: Remove useless includes 2020-12-10 22:37:30 +01:00
vf610_nfc.c mtd: rawnand: vf610: Remove unused function vf610_nfc_transfer_size() 2020-09-30 16:44:17 +02:00
xway_nand.c mtd: rawnand: xway: Do not force a particular software ECC engine 2020-12-11 20:10:02 +01:00