Commit 95b54e1e authored by Richard Weinberger's avatar Richard Weinberger

ubi: gluebi: Fix double refcounting

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: default avatarRichard Weinberger <richard@nod.at>
parent dccbc919
...@@ -99,9 +99,6 @@ static int gluebi_get_device(struct mtd_info *mtd) ...@@ -99,9 +99,6 @@ static int gluebi_get_device(struct mtd_info *mtd)
struct gluebi_device *gluebi; struct gluebi_device *gluebi;
int ubi_mode = UBI_READONLY; int ubi_mode = UBI_READONLY;
if (!try_module_get(THIS_MODULE))
return -ENODEV;
if (mtd->flags & MTD_WRITEABLE) if (mtd->flags & MTD_WRITEABLE)
ubi_mode = UBI_READWRITE; ubi_mode = UBI_READWRITE;
...@@ -129,7 +126,6 @@ static int gluebi_get_device(struct mtd_info *mtd) ...@@ -129,7 +126,6 @@ static int gluebi_get_device(struct mtd_info *mtd)
ubi_mode); ubi_mode);
if (IS_ERR(gluebi->desc)) { if (IS_ERR(gluebi->desc)) {
mutex_unlock(&devices_mutex); mutex_unlock(&devices_mutex);
module_put(THIS_MODULE);
return PTR_ERR(gluebi->desc); return PTR_ERR(gluebi->desc);
} }
gluebi->refcnt += 1; gluebi->refcnt += 1;
...@@ -153,7 +149,6 @@ static void gluebi_put_device(struct mtd_info *mtd) ...@@ -153,7 +149,6 @@ static void gluebi_put_device(struct mtd_info *mtd)
gluebi->refcnt -= 1; gluebi->refcnt -= 1;
if (gluebi->refcnt == 0) if (gluebi->refcnt == 0)
ubi_close_volume(gluebi->desc); ubi_close_volume(gluebi->desc);
module_put(THIS_MODULE);
mutex_unlock(&devices_mutex); mutex_unlock(&devices_mutex);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment