Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 33f45c44 authored by Boris Brezillon's avatar Boris Brezillon
Browse files

mtd: Do not allow MTD devices with inconsistent erase properties



When mtd->erasesize is 0 or mtd->_erase is NULL, that means the device
does not support the erase operation, which in turn means it should
have the MTD_NO_ERASE flag set.

Signed-off-by: default avatarBoris Brezillon <boris.brezillon@free-electrons.com>
Reviewed-by: default avatarMiquel Raynal <miquel.raynal@free-electrons.com>
parent 911c3a30
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -503,6 +503,11 @@ int add_mtd_device(struct mtd_info *mtd)
		return -EEXIST;

	BUG_ON(mtd->writesize == 0);

	if (WARN_ON((!mtd->erasesize || !mtd->_erase) &&
		    !(mtd->flags & MTD_NO_ERASE)))
		return -EINVAL;

	mutex_lock(&mtd_table_mutex);

	i = idr_alloc(&mtd_idr, mtd, 0, 0, GFP_KERNEL);