ubi: Put MTD device after it is not used
authorPan Bian <bianpan2016@163.com>
Wed, 28 Nov 2018 02:57:33 +0000 (10:57 +0800)
committerRichard Weinberger <richard@nod.at>
Thu, 13 Dec 2018 21:09:32 +0000 (22:09 +0100)
The MTD device reference is dropped via put_mtd_device, however its
field ->index is read and passed to ubi_msg. To fix this, the patch
moves the reference dropping after calling ubi_msg.

Signed-off-by: Pan Bian <bianpan2016@163.com>
Reviewed-by: Boris Brezillon <boris.brezillon@bootlin.com>
Signed-off-by: Richard Weinberger <richard@nod.at>
drivers/mtd/ubi/build.c

index a4e3454..09170b7 100644 (file)
@@ -1101,10 +1101,10 @@ int ubi_detach_mtd_dev(int ubi_num, int anyway)
        ubi_wl_close(ubi);
        ubi_free_internal_volumes(ubi);
        vfree(ubi->vtbl);
-       put_mtd_device(ubi->mtd);
        vfree(ubi->peb_buf);
        vfree(ubi->fm_buf);
        ubi_msg(ubi, "mtd%d is detached", ubi->mtd->index);
+       put_mtd_device(ubi->mtd);
        put_device(&ubi->dev);
        return 0;
 }