Received: by 2002:a05:6a10:206:0:0:0:0 with SMTP id 6csp4549628pxj; Wed, 12 May 2021 08:01:16 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzDulGTrz/cQAkmAzQyrbc+LwzpawAhsyTtAcLjosnY2TM+4zfzp91p9p+Kr6al0792hZCy X-Received: by 2002:aca:d90a:: with SMTP id q10mr7821632oig.63.1620831674909; Wed, 12 May 2021 08:01:14 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1620831674; cv=none; d=google.com; s=arc-20160816; b=qlULxJ3a29EMuQUyLK74iO+1baZLpJ4u3xxg6d/7+5vnbq1gNdO1qpcldAL87NF47w Ilm5nXn1xD5sVDqfiOhK64K0kuMK7R7brLnfXVDm7eUXn6pmskTDJtDk9udFmJgp1Lvx DtTXFtwG9bkJuDaG8HgjRGJNb0yHcx4Cocx22+9ONWMQ0/rbPwyEVWZyNHcDZ0lvZvz3 taeYGPYus7RwxREw1b8kmpCn4+3ster/TutxgNZBHYZtnsxBRfMGgq9dV0PHgUJ61Jhs T+oycaYa2LXtEWTWwaJO0GIf6sCwS/21mROBu0QTAKxCL+C9yOHp5OzxN71zo5lZf9wF kOqA== 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 :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=LgaholVpSPV2tD298KHyAAjMl/hGHpFE95UnIVjqpQQ=; b=xkMcn8DtbLn6r09FJ9hnbhNEIOJOMUtLHhl9SydZDTPVU2SdamI1zArFVXso43ymLg /CuH6pXVkcoEJfhwDR9/cfzrFf7e4xa7Ln5mIJaWi84y3Xs/zhSgheTmvYQS5V/9uh0t 4XZ0Vb30opRpPhk8iPfo7EeyGDIrvVH9VQFGHl5hXpJiYR1NbcnjiFLefbNjxEWEhPbv qCasVQ2cj91vB9qwGt7sarxEoG6Pp6nTjKjvouMvl2s7g1hz3/8+esR+/Jmgi/QUvjx/ NwBzl3gjk5GVF4HShLW4VIL2KJvcE8YEnDEqU7RDLq1IDD7RimFWkMZgF2w5ooDDH77x YsVg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b="j/up/LcV"; 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=NONE dis=NONE) header.from=linuxfoundation.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id t141si207729oie.181.2021.05.12.08.01.00; Wed, 12 May 2021 08:01:14 -0700 (PDT) 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=@linuxfoundation.org header.s=korg header.b="j/up/LcV"; 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=NONE dis=NONE) header.from=linuxfoundation.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232401AbhELO7o (ORCPT + 99 others); Wed, 12 May 2021 10:59:44 -0400 Received: from mail.kernel.org ([198.145.29.99]:45520 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231891AbhELO5J (ORCPT ); Wed, 12 May 2021 10:57:09 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id 793706145B; Wed, 12 May 2021 14:55:33 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1620831334; bh=A5+ENWKZarSI7m45oqzabLAiz1VVTSyTgxM22el+HzA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=j/up/LcVSiZu0OXtmQ4+Fuv3DjQVvBK35oLwIgROhuAGJqkVFEe69YvrRbFy9JZvo n+8ZP5NYg5RN5A0PX2L0i2UOln9tikZZmyPkW1quXbLAj/WRCuxHl6S2XRtDlPA9Yi y1s/NSpt9QqRt/8BJrMvdjvP4ZS9U9PtVxhSRkfk= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= , Brian Norris , Miquel Raynal , Sasha Levin Subject: [PATCH 5.4 077/244] mtd: rawnand: brcmnand: fix OOB R/W with Hamming ECC Date: Wed, 12 May 2021 16:47:28 +0200 Message-Id: <20210512144745.500054751@linuxfoundation.org> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210512144743.039977287@linuxfoundation.org> References: <20210512144743.039977287@linuxfoundation.org> User-Agent: quilt/0.66 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 From: Álvaro Fernández Rojas [ Upstream commit f5200c14242fb8fa4a9b93f7fd4064d237e58785 ] 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 Acked-by: Brian Norris Signed-off-by: Miquel Raynal Link: https://lore.kernel.org/linux-mtd/20210224080210.23686-1-noltari@gmail.com Signed-off-by: Sasha Levin --- 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 e9ad8bb82f44..0f3c09fb9c34 100644 --- a/drivers/mtd/nand/raw/brcmnand/brcmnand.c +++ b/drivers/mtd/nand/raw/brcmnand/brcmnand.c @@ -2364,6 +2364,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.30.2