Received: by 2002:a05:6a10:9848:0:0:0:0 with SMTP id x8csp4000306pxf; Tue, 6 Apr 2021 05:48:39 -0700 (PDT) X-Google-Smtp-Source: ABdhPJx1h1hErjWTNA72rj2HlZf/U2y9S3xlspRJXyTot4FYDHZfixwjTRTcSqg97EDcFln1BkV2 X-Received: by 2002:a17:906:2818:: with SMTP id r24mr33779601ejc.502.1617713319320; Tue, 06 Apr 2021 05:48:39 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1617713319; cv=none; d=google.com; s=arc-20160816; b=OZQuK83BcvaskhRR0JKQwpfLJV5I1hVEfAbMPkaJMZP1/VEadfHqanMSz5pvVVxqQq ZTjV5uKAlFmiYOhHcq5pKFFMUEMJcddEyZRGy6og3CZRcPgkqAFIkWt8cQoxjsGBk/x0 nG7qVT+/HwRGOyP7dcuaIKGaOxjUzrb6qkwDA1O92obS+Az9a/h8jdD5l8QWqEAYMSui Aua1Xjkr2PbwM/eavD8jdRk2vRgoEt6sT+5YMI9QMK1lxe8jT3U3pzkQqWSZrQwbiorU dfHLjbt9CuhufLFY6I9rBF+tvMMa6DFaIztp8Aq8kTQ7Y6YPzgzNMPQfmeTHR6izZj+u 3yNg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:references:in-reply-to:message-id:date:subject :cc:to:from; bh=CtH7b445GdE5wRPHMw7iuWrpcXkT8hS/jm4ZOfzVvoM=; b=RpKecusFzK7BsaHw5g4vxlEo26pEyZkNcLFGm56vb6/rYLrwlz94HtHAB1RATZ8Pga EvZsfT7N3gT+VQUJZ9V1dJifovHrUi7pxsWPveSdWsEbiEbuC/v0L2WO07H7bed37jty YsSylf78JoQwqEzoBfMq5XEy+iQmmJc49uH430r0IQPM69A+u0GhK62wqmEBUPAvrKk3 Zihv0etXxIsCDG5vmDudYUBP74uspe7qWiqz5tvKCYp577VkFoQeC0bN3QlujmmB8ugi 5wkVWFX4WkObVMCVEKY0B0JSVAme2gWRnL1jwpfFxsb1XBuyOOGixKuvqWfHZC4avcvD ncfg== ARC-Authentication-Results: i=1; mx.google.com; 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=fail (p=NONE sp=NONE dis=NONE) header.from=kioxia.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id e5si5335647ejy.692.2021.04.06.05.48.16; Tue, 06 Apr 2021 05:48:39 -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; 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=fail (p=NONE sp=NONE dis=NONE) header.from=kioxia.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S243321AbhDFCHV (ORCPT + 99 others); Mon, 5 Apr 2021 22:07:21 -0400 Received: from mo-csw-fb1115.securemx.jp ([210.130.202.174]:37448 "EHLO mo-csw-fb.securemx.jp" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S238649AbhDFCHQ (ORCPT ); Mon, 5 Apr 2021 22:07:16 -0400 Received: by mo-csw-fb.securemx.jp (mx-mo-csw-fb1115) id 1361lcVE002641; Tue, 6 Apr 2021 10:47:39 +0900 Received: by mo-csw.securemx.jp (mx-mo-csw1114) id 1361lEZu007326; Tue, 6 Apr 2021 10:47:15 +0900 X-Iguazu-Qid: 2wGrVoOlx8DnQbNBFY X-Iguazu-QSIG: v=2; s=0; t=1617673634; q=2wGrVoOlx8DnQbNBFY; m=cxnfJ9M8PQa+u2t3Lsdd5XtJDQNRyDNPmrSjk1uyn14= Received: from imx12-a.toshiba.co.jp (imx12-a.toshiba.co.jp [61.202.160.135]) by relay.securemx.jp (mx-mr1110) id 1361lCF1023749 (version=TLSv1.2 cipher=AES128-GCM-SHA256 bits=128 verify=NOT); Tue, 6 Apr 2021 10:47:13 +0900 Received: from enc02.toshiba.co.jp (enc02.toshiba.co.jp [61.202.160.51]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by imx12-a.toshiba.co.jp (Postfix) with ESMTPS id B48231000A4; Tue, 6 Apr 2021 10:47:12 +0900 (JST) Received: from hop101.toshiba.co.jp ([133.199.85.107]) by enc02.toshiba.co.jp with ESMTP id 1361lC8k012997; Tue, 6 Apr 2021 10:47:12 +0900 From: Yoshio Furuyama To: miquel.raynal@bootlin.com, richard@nod.at, vigneshr@ti.com Cc: linux-mtd@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH v2 1/2] Fix corner case in bad block table handling. Date: Tue, 6 Apr 2021 10:47:08 +0900 X-TSB-HOP: ON Message-Id: <774a92693f311e7de01e5935e720a179fb1b2468.1616635406.git.ytc-mb-yfuruyama7@kioxia.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: References: Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: "Doyle, Patrick" In the unlikely event that both blocks 10 and 11 are marked as bad (on a 32 bit machine), then the process of marking block 10 as bad stomps on cached entry for block 11. There are (of course) other examples. Signed-off-by: Patrick Doyle Reviewed-by: Richard Weinberger --- drivers/mtd/nand/bbt.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/mtd/nand/bbt.c b/drivers/mtd/nand/bbt.c index 044adf913854..64af6898131d 100644 --- a/drivers/mtd/nand/bbt.c +++ b/drivers/mtd/nand/bbt.c @@ -123,7 +123,7 @@ int nanddev_bbt_set_block_status(struct nand_device *nand, unsigned int entry, unsigned int rbits = bits_per_block + offs - BITS_PER_LONG; pos[1] &= ~GENMASK(rbits - 1, 0); - pos[1] |= val >> rbits; + pos[1] |= val >> (bits_per_block - rbits); } return 0; -- 2.25.1