generic: platform/mikrotik: release mtd device after use
authorKoen Vandeputte <koen.vandeputte@ncentric.com>
Wed, 12 May 2021 09:41:26 +0000 (11:41 +0200)
committerKoen Vandeputte <koen.vandeputte@ncentric.com>
Wed, 12 May 2021 09:42:31 +0000 (11:42 +0200)
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:
[   83.099037] Removing MTD device #1 (hard_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>
[Backported from master]
Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
target/linux/generic/files/drivers/platform/mikrotik/rb_hardconfig.c

index 46dc476003c2673e6451a617ee2c946c0c7dc1a1..01cf46b668bfefde93087b3abad9ac6e14ab007e 100644 (file)
@@ -682,10 +682,13 @@ int __init rb_hardconfig_init(struct kobject *rb_kobj)
 
        hc_buflen = mtd->size;
        hc_buf = kmalloc(hc_buflen, GFP_KERNEL);
-       if (!hc_buf)
+       if (!hc_buf) {
                return -ENOMEM;
+               put_mtd_device(mtd);
+       }
 
        ret = mtd_read(mtd, 0, hc_buflen, &bytes_read, hc_buf);
+       put_mtd_device(mtd);
 
        if (bytes_read != hc_buflen) {
                ret = -EIO;