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