Commit 2a6a4455 authored by Wentao Liang's avatar Wentao Liang Committed by Miquel Raynal
Browse files

mtd: Fix error handling in mtd_device_parse_register() error path



Check and log del_mtd_device() failures. Print an error message
with pr_err() to prevent silent failures, but preserve the original
error code instead of propagating the secondary error since
del_mtd_device() is already in an error handling path.

Signed-off-by: default avatarWentao Liang <vulab@iscas.ac.cn>
Signed-off-by: default avatarMiquel Raynal <miquel.raynal@bootlin.com>
parent 6697dae1
Loading
Loading
Loading
Loading
+6 −3
Original line number Diff line number Diff line
@@ -1056,7 +1056,7 @@ int mtd_device_parse_register(struct mtd_info *mtd, const char * const *types,
			      const struct mtd_partition *parts,
			      int nr_parts)
{
	int ret;
	int ret, err;

	mtd_set_dev_defaults(mtd);

@@ -1108,8 +1108,11 @@ int mtd_device_parse_register(struct mtd_info *mtd, const char * const *types,
		nvmem_unregister(mtd->otp_factory_nvmem);
	}

	if (ret && device_is_registered(&mtd->dev))
		del_mtd_device(mtd);
	if (ret && device_is_registered(&mtd->dev)) {
		err = del_mtd_device(mtd);
		if (err)
			pr_err("Error when deleting MTD device (%d)\n", err);
	}

	return ret;
}