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>
(cherry picked from commit
4e385a27d6c4aab62ef7fc9856f09ebee9632985)
hc_buflen = mtd->size;
hc_buf = kmalloc(hc_buflen, GFP_KERNEL);
- if (!hc_buf)
+ if (!hc_buf) {
+ put_mtd_device(mtd);
return -ENOMEM;
+ }
ret = mtd_read(mtd, 0, hc_buflen, &bytes_read, hc_buf);
+ put_mtd_device(mtd);
if (ret)
goto fail;
}
write_unlock(&sc_bufrwl);
+ put_mtd_device(mtd);
+
if (ret)
goto mtdfail;
sc_buflen = mtd->size;
sc_buf = kmalloc(sc_buflen, GFP_KERNEL);
- if (!sc_buf)
+ if (!sc_buf) {
+ put_mtd_device(mtd);
return -ENOMEM;
+ }
ret = mtd_read(mtd, 0, sc_buflen, &bytes_read, sc_buf);
+ put_mtd_device(mtd);
if (ret)
goto fail;