linux-mtd.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
From: Xiaolei Li <xiaolei.li@mediatek.com>
To: <miquel.raynal@bootlin.com>, <richard@nod.at>
Cc: linux-mediatek@lists.infradead.org, xiaolei.li@mediatek.com,
	linux-mtd@lists.infradead.org, srv_heupstream@mediatek.com
Subject: [PATCH v3 3/4] mtd: rawnand: mtk: Add validity check for CE# pin setting
Date: Tue, 7 May 2019 18:25:40 +0800	[thread overview]
Message-ID: <20190507102541.34341-4-xiaolei.li@mediatek.com> (raw)
In-Reply-To: <20190507102541.34341-1-xiaolei.li@mediatek.com>

Currently, we only check how many CE# pins are set in device tree.
But it should be necessary to check whether CE# pin setting is
duplicated or if CE# pin index exceeds the maximum CE# number that
controller supports.

So, add validity check to avoid these invalid settings.

Signed-off-by: Xiaolei Li <xiaolei.li@mediatek.com>
Reviewed-by: Miquel Raynal <miquel.raynal@bootlin.com>
---
 drivers/mtd/nand/raw/mtk_nand.c | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/drivers/mtd/nand/raw/mtk_nand.c b/drivers/mtd/nand/raw/mtk_nand.c
index 6b79a0f9aef8..14a9b8c2a8db 100644
--- a/drivers/mtd/nand/raw/mtk_nand.c
+++ b/drivers/mtd/nand/raw/mtk_nand.c
@@ -162,6 +162,8 @@ struct mtk_nfc {
 	struct list_head chips;
 
 	u8 *buffer;
+
+	unsigned long assigned_cs;
 };
 
 /*
@@ -1367,6 +1369,17 @@ static int mtk_nfc_nand_chip_init(struct device *dev, struct mtk_nfc *nfc,
 			dev_err(dev, "reg property failure : %d\n", ret);
 			return ret;
 		}
+
+		if (tmp >= MTK_NAND_MAX_NSELS) {
+			dev_err(dev, "invalid CS: %u\n", tmp);
+			return -EINVAL;
+		}
+
+		if (test_and_set_bit(tmp, &nfc->assigned_cs)) {
+			dev_err(dev, "CS %u already assigned\n", tmp);
+			return -EINVAL;
+		}
+
 		chip->sels[i] = tmp;
 	}
 
-- 
2.18.0


______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/

  parent reply	other threads:[~2019-05-07 10:25 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-05-07 10:25 [PATCH v3 0/4] MTK NAND driver improvements and fixes Xiaolei Li
2019-05-07 10:25 ` [PATCH v3 1/4] mtd: rawnand: mtk: Correct low level time calculation of r/w cycle Xiaolei Li
2019-06-03  8:04   ` Miquel Raynal
2019-05-07 10:25 ` [PATCH v3 2/4] mtd: rawnand: mtk: Improve data sampling timing for read cycle Xiaolei Li
2019-06-03  8:04   ` Miquel Raynal
2019-05-07 10:25 ` Xiaolei Li [this message]
2019-06-03  8:04   ` [PATCH v3 3/4] mtd: rawnand: mtk: Add validity check for CE# pin setting Miquel Raynal
2019-05-07 10:25 ` [PATCH v3 4/4] mtd: rawnand: mtk: Fix wrongly assigned OOB buffer pointer issue Xiaolei Li
2019-06-03  8:04   ` Miquel Raynal
2019-05-17  1:32 ` [PATCH v3 0/4] MTK NAND driver improvements and fixes xiaolei li
2019-05-17  8:12   ` Miquel Raynal
2019-05-17  9:21     ` xiaolei li

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20190507102541.34341-4-xiaolei.li@mediatek.com \
    --to=xiaolei.li@mediatek.com \
    --cc=linux-mediatek@lists.infradead.org \
    --cc=linux-mtd@lists.infradead.org \
    --cc=miquel.raynal@bootlin.com \
    --cc=richard@nod.at \
    --cc=srv_heupstream@mediatek.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).