Received: by 2002:a05:6a10:206:0:0:0:0 with SMTP id 6csp4706568pxj; Wed, 12 May 2021 11:20:08 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyvpfLsVPTNDEAumjr6uo2DLreQCDrLLCY/0xQbqEGuDjsN5uHedUkSjucQbx//pImMkZDp X-Received: by 2002:a9d:73d7:: with SMTP id m23mr32086157otk.325.1620843608776; Wed, 12 May 2021 11:20:08 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1620843608; cv=none; d=google.com; s=arc-20160816; b=MUMiyiKkyNDFvRL3fD/d9MEOKoUcEBccojAuTe1iopgKJ6zO8xUcXfhNRmL5EHeEDt 5NvfJjhhHPTeZHMB8R0SMbaTV+XlhWGAONeJmSCklIx0hcutphxQFsc6cRMcGGKk1BrN ID3OBaI0RgmZ3OLWLFrkqC7gFQuBH+PaU7TrxvkyL451q+SxzAW4uFwDazM6OCB3m7WD ueFjyhtsMvyROm8vpa2qjTu+CIRlrq1jiu+I8598nLczPj9lEKGPtyQRilJtU3n0mFcd WMBqRSedwb9oWCG8Kq6Bjl/foYFCzW/BwqM4PcGOafZu2W8gtzbmNTnXNMlFeT8kDbUk QKaQ== 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=SRPmvOnG8bb0tzu/uoEF9voSJ4Os0I1KufCt4a9JplCl28jogqaQ3cQr2Hoj8DePuH Xt6ZbePBowVDgIq4JSjMHWNLrebS33vg6yOvOvWGa6JGdFea5wDTgigo0N1RY4OPRZyn nI7JWaUx/iiM8X9rWflX7lnHCWk+a41tow+xPqp6TYvzeDH8lySGYCJxkXs5GYBsmwAg AcdcH0e8nwH8LO/uDQkxpL3Qlcs2R/WpTbR+9fj3bVB/A9L6RfJY2Y5B945W1dysLJku vOnRNxEbQ1rhVJIhWa9k3ZaCnM98a4Pgs8+YZENc7UZ2+qTe5i+UfJqAE9dI90JmNfjy bx4w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=FidGqYZW; 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 e20si431322otj.11.2021.05.12.11.19.54; Wed, 12 May 2021 11:20:08 -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=FidGqYZW; 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 S235187AbhELSUN (ORCPT + 99 others); Wed, 12 May 2021 14:20:13 -0400 Received: from mail.kernel.org ([198.145.29.99]:47150 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S238412AbhELQaT (ORCPT ); Wed, 12 May 2021 12:30:19 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id 757E7613C5; Wed, 12 May 2021 15:57:14 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1620835035; bh=O8AkEc7Xps/dZTeO7uBNoyzMIcXrglmC010TCSsG1kI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=FidGqYZWwkYMv25QY9fmkO70KQHvAu7ri7HuSghGbf5i8SJsYMqqdtICElUKJICe4 dBnDvkYoXItf1skJhxtDqWO47u8botHcLPYtqM2F7dT0u216xX9o8mhDP5EvPYNKiS 20UyN1NLofcHY7LHKxPSkBpRY3uGWHPSnoWMJOYo= 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.12 181/677] mtd: rawnand: brcmnand: fix OOB R/W with Hamming ECC Date: Wed, 12 May 2021 16:43:47 +0200 Message-Id: <20210512144843.253919346@linuxfoundation.org> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210512144837.204217980@linuxfoundation.org> References: <20210512144837.204217980@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