Received: by 2002:a05:6a10:8c0a:0:0:0:0 with SMTP id go10csp382795pxb; Wed, 24 Feb 2021 05:00:01 -0800 (PST) X-Google-Smtp-Source: ABdhPJymLWb9w5yjx2EPDUCItoNCe3X0fYmKviu00qNbatG5I4Q/2Lcze8sESZE9DA6mRK3E4kVc X-Received: by 2002:a17:907:10c8:: with SMTP id rv8mr11526830ejb.58.1614171601500; Wed, 24 Feb 2021 05:00:01 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1614171601; cv=none; d=google.com; s=arc-20160816; b=sOaztCKVFsGp60GDEFsFX1rbSlsgbGUzinpruRheEuGPbCYxJhheLTpf6fvWmDmsL1 i60THRQGNiLo3b/q/8VTVJe2TWazovEUVPigscn8EbijhGWSNoipJsqlIMPNQVMlWOsg 7XIiZwmmh3bS5ygIExlrjfDvdJJig4d1OxwOLa8uxEADbd3s/r7DNA5tEx7LQE3YNnBA hjBl0lpKIrNCeraMIZDCw5VqomVHq9eDMCzYbjvJ+QOU7O30GYB2HDCM4QbuwucXngIS H5PLYDp5L0oPaRVbJzeuLwbl571uvRWV3cuXCnW/QH7czuq3t84WQZ1g9KEEDZBRS6xA lfrw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=Z7NDGuuBGpr0KObSoWksVh7Rk18owzLbRpVZKUClVHk=; b=wX/3515oBaKa96oNcO3Kmvzvna7GuhxEjXuxQ83H6iSOedW9x2i9ir9xVlsHnyz97a 6+uDAcQgvEZgJF4vw/eUntE8poX5b6wbdf/nFSbNsbIHPVb5bqX2lPx3aM59+1GQn2C9 zVMWixSVM0KTxZkvmKTcVRQT6LYuvCcy4OvicgVrtPlcyZ5PupgiDJug91Xt8ROfFNEF JUhl3KCTcqF3VazGt2fYpz0nPluNFlsRH0HRoxwUQKj1zn7MBO1VnM26j/PNfgsxFoRd UawwZy+96SXO0za3uQbrY/9QOwb79nFJd9ijOaj7azuJyFlLYNP1uWRkGlKSZywniYQ8 ykHw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=phSaXRdN; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id k22si1142780eds.374.2021.02.24.04.59.23; Wed, 24 Feb 2021 05:00:01 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=phSaXRdN; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233152AbhBXIDS (ORCPT + 99 others); Wed, 24 Feb 2021 03:03:18 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:57220 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234387AbhBXICz (ORCPT ); Wed, 24 Feb 2021 03:02:55 -0500 Received: from mail-wm1-x329.google.com (mail-wm1-x329.google.com [IPv6:2a00:1450:4864:20::329]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 6A327C061574 for ; Wed, 24 Feb 2021 00:02:15 -0800 (PST) Received: by mail-wm1-x329.google.com with SMTP id k66so988742wmf.1 for ; Wed, 24 Feb 2021 00:02:15 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=Z7NDGuuBGpr0KObSoWksVh7Rk18owzLbRpVZKUClVHk=; b=phSaXRdNBIcPj+25JdRCrfUfBMQMOTXde8Kv7aE5D7NUM4w/odWQeDNODqpanDm+Ji c+tQTl0IERpCPCtIITxwUmaPGU6kJoCZEatltPyS0zhTpVskoTJNXd+PkQWNZCTvisl9 8EeMzXJLoFXID2nXlKpAYlPMrgXu4iagh8RIQ1EoGFGVJcoMyV3OZn3D1t3nuWZuEmpn Ny41u/6ZoQE90f2SIAaHSqaL9sA8poFnJw0IY80cceDubkCvERoStM/UAZO9Zl5igqL8 qh48P5Hw2XO55yZJ5h7tU8Aq0FyM+wOXSHGxgbYnQdxSaMibVu5c7NVE9KvdBvtUJuCv UxdA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=Z7NDGuuBGpr0KObSoWksVh7Rk18owzLbRpVZKUClVHk=; b=Yh709KjdAimAE9HBVumZ4OAiR06cEUzSO80bbxCaaSCzwg7XQOcuomvJVDySVhURBu /5LeiuTp6E1VP3R/2+8kIvpk/V5ibccbhXuhEjR/6lWVDImGWSr1YqMKaJMmDsGAWCz4 gGR7AnQztnjdGMO2PvUaIrDdmXk2SAX2g6iAFcvek49PMu93UgCYjVHL7ceGIDm8aoys eXVEOEE63WZX2Sfo9V/hFE5vg2yCAkzNxLh9D1r8AXRVrBSs9lDfFFuGPeKW2tmJmwLR T/54EM7iPLrlYMXQFZMdLhEzkSDAg3qVcb8DyfsedsMBKFuD/+MJM+bdlhazuZdXUOF+ /9Fg== X-Gm-Message-State: AOAM532g9xeps4WhLqCEqu63wkgCV7x0jlLxbfPIxkNYKHeUhwkpZPoP wWJ/YJLH2Q8t1dhqOugw4t0= X-Received: by 2002:a7b:c20a:: with SMTP id x10mr2486521wmi.137.1614153734148; Wed, 24 Feb 2021 00:02:14 -0800 (PST) Received: from skynet.lan (170.red-88-1-105.dynamicip.rima-tde.net. [88.1.105.170]) by smtp.gmail.com with ESMTPSA id 2sm2098489wre.24.2021.02.24.00.02.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 24 Feb 2021 00:02:13 -0800 (PST) From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= To: f.fainelli@gmail.com, Brian Norris , Kamal Dasu , Miquel Raynal , Richard Weinberger , Vignesh Raghavendra , linux-mtd@lists.infradead.org, bcm-kernel-feedback-list@broadcom.com, linux-kernel@vger.kernel.org Cc: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= Subject: [PATCH v2] nand: brcmnand: fix OOB R/W with Hamming ECC Date: Wed, 24 Feb 2021 09:02:10 +0100 Message-Id: <20210224080210.23686-1-noltari@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20210222201655.32361-1-noltari@gmail.com> References: <20210222201655.32361-1-noltari@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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: 27c5b17cd1b1 ("mtd: nand: add NAND driver "library" for Broadcom STB NAND controller") Signed-off-by: Álvaro Fernández Rojas --- v2: Add fixed tag. drivers/mtd/nand/raw/brcmnand/brcmnand.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/drivers/mtd/nand/raw/brcmnand/brcmnand.c b/drivers/mtd/nand/raw/brcmnand/brcmnand.c index 659eaa6f0980..5ff4291380c5 100644 --- a/drivers/mtd/nand/raw/brcmnand/brcmnand.c +++ b/drivers/mtd/nand/raw/brcmnand/brcmnand.c @@ -2688,6 +2688,12 @@ static int brcmnand_attach_chip(struct nand_chip *chip) ret = brcmstb_choose_ecc_layout(host); + /* If OOB is written with ECC enabled it will cause ECC errors */ + if (is_hamming_ecc(host->ctrl, &host->hwcfg)) { + chip->ecc.write_oob = brcmnand_write_oob_raw; + chip->ecc.read_oob = brcmnand_read_oob_raw; + } + return ret; } -- 2.20.1