Messages in this thread Patch in this message | | | From | Daniel Walter <> | Subject | [PATCH v2 04/46] mtd: Don't unconditionally execute remove notifiers | Date | Wed, 21 Sep 2016 11:45:47 +0200 |
| |
From: Richard Weinberger <richard@nod.at>
Only call them when we're really removing the MTD.
Reviewed-by: Boris Brezillon <boris.brezillon@free-electrons.com> Signed-off-by: Richard Weinberger <richard@nod.at> --- drivers/mtd/mtdcore.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-)
diff --git a/drivers/mtd/mtdcore.c b/drivers/mtd/mtdcore.c index 36e5fb0..b8205ec 100644 --- a/drivers/mtd/mtdcore.c +++ b/drivers/mtd/mtdcore.c @@ -499,16 +499,17 @@ int del_mtd_device(struct mtd_info *mtd) goto out_error; } - /* No need to get a refcount on the module containing - the notifier, since we hold the mtd_table_mutex */ - list_for_each_entry(not, &mtd_notifiers, list) - not->remove(mtd); - if (mtd->usecount) { printk(KERN_NOTICE "Removing MTD device #%d (%s) with use count %d\n", mtd->index, mtd->name, mtd->usecount); ret = -EBUSY; } else { + /* No need to get a refcount on the module containing + * the notifier, since we hold the mtd_table_mutex + */ + list_for_each_entry(not, &mtd_notifiers, list) + not->remove(mtd); + device_unregister(&mtd->dev); idr_remove(&mtd_idr, mtd->index); -- 2.8.3
| |