mtd: spinand: Explicitly use MTD_OPS_RAW to write the bad block marker to OOB
authorFrieder Schrempf <frieder.schrempf@kontron.de>
Tue, 18 Feb 2020 10:05:25 +0000 (10:05 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 23 Apr 2020 08:30:23 +0000 (10:30 +0200)
commit 621a7b780bd8b7054647d53d5071961f2c9e0873 upstream.

When writing the bad block marker to the OOB area the access mode
should be set to MTD_OPS_RAW as it is done for reading the marker.
Currently this only works because req.mode is initialized to
MTD_OPS_PLACE_OOB (0) and spinand_write_to_cache_op() checks for
req.mode != MTD_OPS_AUTO_OOB.

Fix this by explicitly setting req.mode to MTD_OPS_RAW.

Fixes: 7529df465248 ("mtd: nand: Add core infrastructure to support SPI NANDs")
Signed-off-by: Frieder Schrempf <frieder.schrempf@kontron.de>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
Link: https://lore.kernel.org/linux-mtd/20200218100432.32433-3-frieder.schrempf@kontron.de
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/mtd/nand/spi/core.c

index ee0c74b02220fc5c47008606a26189da2d9934ce..a2f38b3b97763046821703e6f2467378c2629c60 100644 (file)
@@ -670,6 +670,7 @@ static int spinand_markbad(struct nand_device *nand, const struct nand_pos *pos)
                .ooboffs = 0,
                .ooblen = sizeof(marker),
                .oobbuf.out = marker,
+               .mode = MTD_OPS_RAW,
        };
        int ret;