Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge tag 'for-linus-20171218' of git://git.infradead.org/linux-mtd

Pull MTD fixes from Richard Weinberger:
"This contains the following regression fixes:

- fix bitflip handling in brcmnand and gpmi nand drivers

- revert a bad device tree binding for spi-nor

- fix a copy&paste error in gpio-nand driver

- fix a too strict length check in mtd core"

* tag 'for-linus-20171218' of git://git.infradead.org/linux-mtd:
mtd: Fix mtd_check_oob_ops()
mtd: nand: gpio: Fix ALE gpio configuration
mtd: nand: brcmnand: Zero bitflip is not an error
mtd: nand: gpmi: Fix failure when a erased page has a bitflip at BBM
Revert "dt-bindings: mtd: add sst25wf040b and en25s64 to sip-nor list"

+8 -10
-2
Documentation/devicetree/bindings/mtd/jedec,spi-nor.txt
··· 13 13 at25df321a 14 14 at25df641 15 15 at26df081a 16 - en25s64 17 16 mr25h128 18 17 mr25h256 19 18 mr25h10 ··· 32 33 s25fl008k 33 34 s25fl064k 34 35 sst25vf040b 35 - sst25wf040b 36 36 m25p40 37 37 m25p80 38 38 m25p16
+1 -1
drivers/mtd/mtdcore.c
··· 1114 1114 if (!ops->oobbuf) 1115 1115 ops->ooblen = 0; 1116 1116 1117 - if (offs < 0 || offs + ops->len >= mtd->size) 1117 + if (offs < 0 || offs + ops->len > mtd->size) 1118 1118 return -EINVAL; 1119 1119 1120 1120 if (ops->ooblen) {
+1 -1
drivers/mtd/nand/brcmnand/brcmnand.c
··· 1763 1763 err = brcmstb_nand_verify_erased_page(mtd, chip, buf, 1764 1764 addr); 1765 1765 /* erased page bitflips corrected */ 1766 - if (err > 0) 1766 + if (err >= 0) 1767 1767 return err; 1768 1768 } 1769 1769
+3 -3
drivers/mtd/nand/gpio.c
··· 253 253 goto out_ce; 254 254 } 255 255 256 - gpiomtd->nwp = devm_gpiod_get(dev, "ale", GPIOD_OUT_LOW); 257 - if (IS_ERR(gpiomtd->nwp)) { 258 - ret = PTR_ERR(gpiomtd->nwp); 256 + gpiomtd->ale = devm_gpiod_get(dev, "ale", GPIOD_OUT_LOW); 257 + if (IS_ERR(gpiomtd->ale)) { 258 + ret = PTR_ERR(gpiomtd->ale); 259 259 goto out_ce; 260 260 } 261 261
+3 -3
drivers/mtd/nand/gpmi-nand/gpmi-nand.c
··· 1067 1067 return ret; 1068 1068 } 1069 1069 1070 - /* handle the block mark swapping */ 1071 - block_mark_swapping(this, payload_virt, auxiliary_virt); 1072 - 1073 1070 /* Loop over status bytes, accumulating ECC status. */ 1074 1071 status = auxiliary_virt + nfc_geo->auxiliary_status_offset; 1075 1072 ··· 1154 1157 mtd->ecc_stats.corrected += *status; 1155 1158 max_bitflips = max_t(unsigned int, max_bitflips, *status); 1156 1159 } 1160 + 1161 + /* handle the block mark swapping */ 1162 + block_mark_swapping(this, buf, auxiliary_virt); 1157 1163 1158 1164 if (oob_required) { 1159 1165 /*