diff options
author | Wentao Liang <vulab@iscas.ac.cn> | 2025-03-03 22:52:23 +0800 |
---|---|---|
committer | Miquel Raynal <miquel.raynal@bootlin.com> | 2025-03-04 12:07:30 +0100 |
commit | 2a6a44555f0727070643fdde7ffac6571e41327a (patch) | |
tree | e8a21adb4a242cb46dcc1e3bb9233259044458d5 | |
parent | 6697dae1e2da89f8f9fa775132f8eac77cea5f7e (diff) |
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: Wentao Liang <vulab@iscas.ac.cn>
Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
-rw-r--r-- | drivers/mtd/mtdcore.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/drivers/mtd/mtdcore.c b/drivers/mtd/mtdcore.c index b80d5098d276..5ba9a741f5ac 100644 --- a/drivers/mtd/mtdcore.c +++ b/drivers/mtd/mtdcore.c @@ -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 @@ out: 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; } |