diff mbox series

ubi: put MTD device after it is not used

Message ID 1543373853-80379-1-git-send-email-bianpan2016@163.com
State Accepted
Delegated to: Richard Weinberger
Headers show
Series ubi: put MTD device after it is not used | expand

Commit Message

Pan Bian Nov. 28, 2018, 2:57 a.m. UTC
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>
---
 drivers/mtd/ubi/build.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Boris Brezillon Nov. 28, 2018, 8:05 a.m. UTC | #1
On Wed, 28 Nov 2018 10:57:33 +0800
Pan Bian <bianpan2016@163.com> wrote:

> 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>

> ---
>  drivers/mtd/ubi/build.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/mtd/ubi/build.c b/drivers/mtd/ubi/build.c
> index a4e3454..09170b7 100644
> --- a/drivers/mtd/ubi/build.c
> +++ b/drivers/mtd/ubi/build.c
> @@ -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);

Maybe we should move some of these to the dev->release() or
class->dev_release() hook.

>  	put_device(&ubi->dev);
>  	return 0;
>  }
diff mbox series

Patch

diff --git a/drivers/mtd/ubi/build.c b/drivers/mtd/ubi/build.c
index a4e3454..09170b7 100644
--- a/drivers/mtd/ubi/build.c
+++ b/drivers/mtd/ubi/build.c
@@ -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;
 }