Commit 8dbd7b10 authored by Xiaolei Li's avatar Xiaolei Li Committed by Miquel Raynal

mtd: rawnand: mtk: Add validity check for CE# pin setting

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: default avatarXiaolei Li <xiaolei.li@mediatek.com>
Reviewed-by: default avatarMiquel Raynal <miquel.raynal@bootlin.com>
Signed-off-by: default avatarMiquel Raynal <miquel.raynal@bootlin.com>
parent 42d13a09
...@@ -154,6 +154,8 @@ struct mtk_nfc { ...@@ -154,6 +154,8 @@ struct mtk_nfc {
struct list_head chips; struct list_head chips;
u8 *buffer; u8 *buffer;
unsigned long assigned_cs;
}; };
/* /*
...@@ -1359,6 +1361,17 @@ static int mtk_nfc_nand_chip_init(struct device *dev, struct mtk_nfc *nfc, ...@@ -1359,6 +1361,17 @@ static int mtk_nfc_nand_chip_init(struct device *dev, struct mtk_nfc *nfc,
dev_err(dev, "reg property failure : %d\n", ret); dev_err(dev, "reg property failure : %d\n", ret);
return 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; chip->sels[i] = tmp;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment