diff --git a/target/linux/generic/files/drivers/platform/mikrotik/rb_hardconfig.c b/target/linux/generic/files/drivers/platform/mikrotik/rb_hardconfig.c index 46dc476003c..01cf46b668b 100644 --- a/target/linux/generic/files/drivers/platform/mikrotik/rb_hardconfig.c +++ b/target/linux/generic/files/drivers/platform/mikrotik/rb_hardconfig.c @@ -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;