generic: platform/mikrotik: release mtd device after use

The code uses get_mtd_device_nm() which must be followed by a call to
put_mtd_device() once the handle is no longer used.

This fixes spurious shutdown console messages such as:
[ 2256.334562] Removing MTD device #7 (soft_config) with use count 1

Reported-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
Tested-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
Signed-off-by: maurerr <mariusd84@gmail.com>
This commit is contained in:
Thibaut VARÈNE 2021-05-11 12:50:21 +02:00 committed by maurerr
parent bc59dc56dc
commit 2447bc45ec
2 changed files with 10 additions and 2 deletions

View File

@ -697,10 +697,13 @@ int __init rb_hardconfig_init(struct kobject *rb_kobj)
hc_buflen = mtd->size; hc_buflen = mtd->size;
hc_buf = kmalloc(hc_buflen, GFP_KERNEL); hc_buf = kmalloc(hc_buflen, GFP_KERNEL);
if (!hc_buf) if (!hc_buf) {
put_mtd_device(mtd);
return -ENOMEM; return -ENOMEM;
}
ret = mtd_read(mtd, 0, hc_buflen, &bytes_read, hc_buf); ret = mtd_read(mtd, 0, hc_buflen, &bytes_read, hc_buf);
put_mtd_device(mtd);
if (ret) if (ret)
goto fail; goto fail;

View File

@ -686,6 +686,8 @@ static ssize_t sc_commit_store(struct kobject *kobj, struct kobj_attribute *attr
} }
write_unlock(&sc_bufrwl); write_unlock(&sc_bufrwl);
put_mtd_device(mtd);
if (ret) if (ret)
goto mtdfail; goto mtdfail;
@ -721,10 +723,13 @@ int __init rb_softconfig_init(struct kobject *rb_kobj)
sc_buflen = mtd->size; sc_buflen = mtd->size;
sc_buf = kmalloc(sc_buflen, GFP_KERNEL); sc_buf = kmalloc(sc_buflen, GFP_KERNEL);
if (!sc_buf) if (!sc_buf) {
put_mtd_device(mtd);
return -ENOMEM; return -ENOMEM;
}
ret = mtd_read(mtd, 0, sc_buflen, &bytes_read, sc_buf); ret = mtd_read(mtd, 0, sc_buflen, &bytes_read, sc_buf);
put_mtd_device(mtd);
if (ret) if (ret)
goto fail; goto fail;