Received: by 2002:a05:6a10:206:0:0:0:0 with SMTP id 6csp4664882pxj; Wed, 12 May 2021 10:22:30 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwjhOG5aKEpdtfyOptFsSZgCkfJ0j+ojIsQlNfqg3FAeeGIUYqaoMPSqvcCRryDBdaTG/8F X-Received: by 2002:a17:906:58cd:: with SMTP id e13mr15622169ejs.207.1620840150470; Wed, 12 May 2021 10:22:30 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1620840150; cv=none; d=google.com; s=arc-20160816; b=KciW4+6b0qfRmc8blgcyS0HzmecZiu1HEkc09mhgim0huHsbr1NQFPK4ToLFAPTGs7 k21Vx6lFkjRwrBSrLpq7SmuM+B4c9DUz6W8Oed2MJfu3umA3iz+fqhDjYOqwkZYRnGDE dbQQKD/uRYdLacScGzyMjpZl6ICJV+wGwzPLGu5zmGusi+QlV8+UEoyalQeOEpWK3gfE o+QussWa60ev6wADTBFlJAWrQtBhLvtzMmOlQgwYSooUy91792+G9+X4mmRqAF8vJjm2 fE1BIDHwDhgWIw/K8j5sL4/LacqHp8OB3ZGdcoP1PrGjNmjNLXMrIr0WbUQuVjMe86ET cZBA== 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=taIHaqxFTbWU5VQwreOKIUo3248/aoZHRYbeK8Z6nr4=; b=EtPCu2bKxVL28KwvOsShilpehtpvysHARI2YZlp70n2f1+lZ3GQhefHm4itUBbBeYm YZjmijEkPoc+n0SBelra/pJafNshFtqZ8smZg8sUKm7jWMVh8D9JDvNIUk86MSjgbbYz GbtFbrBgECOsR/YYeIv3kVvvVP/cgoEDlj8FP5HhImL5nz0bmDl71paMi2piD7gWU0no 5WnPWlAi55Kgll3xAmCPJzLcZW0wvuEUqHlOIjfxlUBr/gzTqmM7AB7N+han6vqmakdy +IUyHErPGWV0b70Gut3dT0o5Yyl0Z/iC0GUshx+BEI9sgCqRN9ueUfrluLTqEe77P4iu si5w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=zlB4w7Ag; 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 gw24si493839ejb.372.2021.05.12.10.22.06; Wed, 12 May 2021 10:22:30 -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=zlB4w7Ag; 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 S1345438AbhELRKX (ORCPT + 99 others); Wed, 12 May 2021 13:10:23 -0400 Received: from mail.kernel.org ([198.145.29.99]:35710 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S238273AbhELP5g (ORCPT ); Wed, 12 May 2021 11:57:36 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id D86E361CB6; Wed, 12 May 2021 15:31:22 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1620833483; bh=O8AkEc7Xps/dZTeO7uBNoyzMIcXrglmC010TCSsG1kI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=zlB4w7AgklZlcgZ7mBz8kuMzeSlaLC3vTa49p81KZrydLvy+G89rwgGWmRvtWpax6 XRildoOJzRQds1YxUwGFyfuBAuC317AxO72nTEsoHNl1NPcAJf1DLesZv/JmwGiz6y OFRupOjTZKEk36mwJU8gYe6xmoMvPsPhn++XHblY= 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.11 167/601] mtd: rawnand: brcmnand: fix OOB R/W with Hamming ECC Date: Wed, 12 May 2021 16:44:04 +0200 Message-Id: <20210512144833.336639835@linuxfoundation.org> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210512144827.811958675@linuxfoundation.org> References: <20210512144827.811958675@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 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.30.2