Received: by 2002:a25:1506:0:0:0:0:0 with SMTP id 6csp4890690ybv; Mon, 17 Feb 2020 07:55:55 -0800 (PST) X-Google-Smtp-Source: APXvYqweyI7A8SiCndF4UkTKGaPcLZgsj+I6+7udschhYlKvcHErQfGZh/JJ93crmN3GdfChbNPC X-Received: by 2002:a9d:7d9a:: with SMTP id j26mr11944792otn.21.1581954955125; Mon, 17 Feb 2020 07:55:55 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1581954955; cv=none; d=google.com; s=arc-20160816; b=A7OdPP7wjWH2zn22IPJ49SPzzQUHm9HeqGBIC1fWBOlf0PTkMPJW28U/aB+dWKP6Od HDD61EizXUoyhVbq+UG126R9Kq0cU5Jo/w+AlEcXOtzYTi0skzCLo5lbVpcawgzGG4oH lQNgZh+ORNQZ/zgl51+FdEsuXHTOSxeBxZW9ffYG3N3SeKx+h3d4dFb2661BYoiGGdfy 4Kd9pUmTq8kanIb3esF9nktJqndPnzMgKJyjFwDma/MkCFSYFLX9GQcMi0xC8QkIxDm4 Zt5WODLnrFmhbAMpsS3GSXC9xf0qTbBcZI4phCtuDWOnRPAurrHvmxMKOs2FNDLDVjUL NBNQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:content-transfer-encoding :content-language:accept-language:in-reply-to:references:message-id :date:thread-index:thread-topic:subject:cc:to:from; bh=4u1if38oLnLuM9ufOcFJqQj4jhd4y2+pkP+IFh8pQQE=; b=ff/DWoI9O6DQ9uuG7ehHVHoUZQdcLiVJMR0sIKVGSteEJF+76oLS8xjXsRnsS0H0Nq atY6dQinX5vGtlb0cUtWydeD5r70ejxg7HF9WB9BfRTs0CyPZN3ckfoHeFIU2lSmQlKs gDpqIm5YoJfIkaSCK+8P7of+oYj59w+l0f5uApXV3ExGrIgSnqmeqy9VWok7W/kjzLQD 4MSJCYUPwRO4F/U0xYU6HjJ5dqnVJ+IhoXbOUVEVG4NYwjsTdnk+iESztPR5N9FqOCz8 l0AdhNODKYYILD+oQ8sArud7XQsLiA9mmzca3NpVSwKRXFlcVGrBHbz8SZsFRmzyAilp QMzg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id 5si6442634oir.9.2020.02.17.07.55.42; Mon, 17 Feb 2020 07:55:55 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729624AbgBQPyP convert rfc822-to-8bit (ORCPT + 99 others); Mon, 17 Feb 2020 10:54:15 -0500 Received: from skedge03.snt-world.com ([91.208.41.68]:38736 "EHLO skedge03.snt-world.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729612AbgBQPyP (ORCPT ); Mon, 17 Feb 2020 10:54:15 -0500 Received: from sntmail11s.snt-is.com (unknown [10.203.32.181]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by skedge03.snt-world.com (Postfix) with ESMTPS id EABA767AB40; Mon, 17 Feb 2020 16:54:12 +0100 (CET) Received: from sntmail12r.snt-is.com (10.203.32.182) by sntmail11s.snt-is.com (10.203.32.181) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1913.5; Mon, 17 Feb 2020 16:54:12 +0100 Received: from sntmail12r.snt-is.com ([fe80::e551:8750:7bba:3305]) by sntmail12r.snt-is.com ([fe80::e551:8750:7bba:3305%3]) with mapi id 15.01.1913.005; Mon, 17 Feb 2020 16:54:12 +0100 From: Schrempf Frieder To: Boris Brezillon , Schrempf Frieder , Jeff Kletsky , liaoweixiong , Miquel Raynal CC: "stable@vger.kernel.org" , "linux-kernel@vger.kernel.org" , "linux-mtd@lists.infradead.org" , "Richard Weinberger" Subject: [PATCH v2 3/3] mtd: spinand: Don not erase the block before writing a bad block marker Thread-Topic: [PATCH v2 3/3] mtd: spinand: Don not erase the block before writing a bad block marker Thread-Index: AQHV5ap/saRAn1//VEmaJshNaD42IA== Date: Mon, 17 Feb 2020 15:54:12 +0000 Message-ID: <20200217155213.5594-4-frieder.schrempf@kontron.de> References: <20200217155213.5594-1-frieder.schrempf@kontron.de> In-Reply-To: <20200217155213.5594-1-frieder.schrempf@kontron.de> Accept-Language: de-DE, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: git-send-email 2.17.1 x-originating-ip: [172.25.9.193] x-c2processedorg: 51b406b7-48a2-4d03-b652-521f56ac89f3 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 8BIT MIME-Version: 1.0 X-SnT-MailScanner-Information: Please contact the ISP for more information X-SnT-MailScanner-ID: EABA767AB40.A1FAB X-SnT-MailScanner: Not scanned: please contact your Internet E-Mail Service Provider for details X-SnT-MailScanner-SpamCheck: X-SnT-MailScanner-From: frieder.schrempf@kontron.de X-SnT-MailScanner-To: bbrezillon@kernel.org, git-commits@allycomm.com, liaoweixiong@allwinnertech.com, linux-kernel@vger.kernel.org, linux-mtd@lists.infradead.org, miquel.raynal@bootlin.com, richard@nod.at, stable@vger.kernel.org X-Spam-Status: No Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Frieder Schrempf Currently when marking a block, we use spinand_erase_op() to erase the block before writing the marker to the OOB area. Doing so without waiting for the operation to finish can lead to the marking failing silently and no bad block marker being written to the flash. In fact we don't need to do an erase at all before writing the BBM. The ECC is disabled for the raw access to the OOB data and we don't need to work around any issues with chips reporting ECC errors as it is known to be the case for raw NAND. Fixes: 7529df465248 ("mtd: nand: Add core infrastructure to support SPI NANDs") Cc: stable@vger.kernel.org Signed-off-by: Frieder Schrempf --- Changes in v2: * Instead of waiting for the erase operation to finish, just don't do an erase at all, as it is not needed. * Update the commit message --- drivers/mtd/nand/spi/core.c | 3 --- 1 file changed, 3 deletions(-) diff --git a/drivers/mtd/nand/spi/core.c b/drivers/mtd/nand/spi/core.c index a94287884453..8dda51bbdd11 100644 --- a/drivers/mtd/nand/spi/core.c +++ b/drivers/mtd/nand/spi/core.c @@ -613,7 +613,6 @@ static int spinand_markbad(struct nand_device *nand, const struct nand_pos *pos) }; int ret; - /* Erase block before marking it bad. */ ret = spinand_select_target(spinand, pos->target); if (ret) return ret; @@ -622,8 +621,6 @@ static int spinand_markbad(struct nand_device *nand, const struct nand_pos *pos) if (ret) return ret; - spinand_erase_op(spinand, pos); - return spinand_write_page(spinand, &req); } -- 2.17.1