blob: ae16f04d9a934fed9190267a82d636c109ef3a15 [file] [log] [blame]
From a6ce5520cf2155d849b4494e7437841d82816220 Mon Sep 17 00:00:00 2001
From: Frieder Schrempf <>
Date: Tue, 18 Feb 2020 10:05:25 +0000
Subject: [PATCH] mtd: spinand: Explicitly use MTD_OPS_RAW to write the bad
block marker to OOB
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 <>
Reviewed-by: Boris Brezillon <>
Signed-off-by: Miquel Raynal <>
Signed-off-by: Paul Gortmaker <>
diff --git a/drivers/mtd/nand/spi/core.c b/drivers/mtd/nand/spi/core.c
index 5a9d5d423dd8..53050305bbce 100644
--- a/drivers/mtd/nand/spi/core.c
+++ b/drivers/mtd/nand/spi/core.c
@@ -609,6 +609,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;