ubi: gluebi: Fix double refcounting
authorRichard Weinberger <richard@nod.at>
Mon, 4 Jul 2016 20:10:13 +0000 (22:10 +0200)
committerRichard Weinberger <richard@nod.at>
Fri, 29 Jul 2016 21:31:54 +0000 (23:31 +0200)
There is no need to call get/put on the module
reference in gluebi_get/put_device() callbacks.
Since mtd->owner is the gluebi module itself
mtdcore.c will take care of proper refcounting
in __get/put_mtd_device() before executing the
callbacks.

Signed-off-by: Richard Weinberger <richard@nod.at>
drivers/mtd/ubi/gluebi.c

index cb7c075..1cb287e 100644 (file)
@@ -99,9 +99,6 @@ static int gluebi_get_device(struct mtd_info *mtd)
        struct gluebi_device *gluebi;
        int ubi_mode = UBI_READONLY;
 
-       if (!try_module_get(THIS_MODULE))
-               return -ENODEV;
-
        if (mtd->flags & MTD_WRITEABLE)
                ubi_mode = UBI_READWRITE;
 
@@ -129,7 +126,6 @@ static int gluebi_get_device(struct mtd_info *mtd)
                                       ubi_mode);
        if (IS_ERR(gluebi->desc)) {
                mutex_unlock(&devices_mutex);
-               module_put(THIS_MODULE);
                return PTR_ERR(gluebi->desc);
        }
        gluebi->refcnt += 1;
@@ -153,7 +149,6 @@ static void gluebi_put_device(struct mtd_info *mtd)
        gluebi->refcnt -= 1;
        if (gluebi->refcnt == 0)
                ubi_close_volume(gluebi->desc);
-       module_put(THIS_MODULE);
        mutex_unlock(&devices_mutex);
 }