Re: [PATCH] ubi: put MTD device after it is not used

From: Boris Brezillon
Date: Wed Nov 28 2018 - 03:05:30 EST


On Wed, 28 Nov 2018 10:57:33 +0800
Pan Bian <bianpan2016@xxxxxxx> 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@xxxxxxx>

Reviewed-by: Boris Brezillon <boris.brezillon@xxxxxxxxxxx>

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