* [PATCH 2/2 v2] mtd: ubi: use put_device() if device_register fail
@ 2018-03-15 7:20 Arvind Yadav
2018-03-15 7:55 ` Richard Weinberger
0 siblings, 1 reply; 5+ messages in thread
From: Arvind Yadav @ 2018-03-15 7:20 UTC (permalink / raw)
To: dwmw2, computersforpeace, boris.brezillon, marek.vasut, richard,
cyrille.pitchen, dedekind1
Cc: linux-kernel, linux-mtd
if device_register() returned an error! Always use put_device()
to give up the reference initialized.
Signed-off-by: Arvind Yadav <arvind.yadav.cs@gmail.com>
---
change in v2:
Fix use-after-free bug. move put_device() after cdev_del().
drivers/mtd/ubi/vmt.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/mtd/ubi/vmt.c b/drivers/mtd/ubi/vmt.c
index 3fd8d7f..93c6163 100644
--- a/drivers/mtd/ubi/vmt.c
+++ b/drivers/mtd/ubi/vmt.c
@@ -610,6 +610,7 @@ int ubi_add_volume(struct ubi_device *ubi, struct ubi_volume *vol)
out_cdev:
cdev_del(&vol->cdev);
+ put_device(&vol->dev);
return err;
}
--
1.9.1
^ permalink raw reply related [flat|nested] 5+ messages in thread* Re: [PATCH 2/2 v2] mtd: ubi: use put_device() if device_register fail 2018-03-15 7:20 [PATCH 2/2 v2] mtd: ubi: use put_device() if device_register fail Arvind Yadav @ 2018-03-15 7:55 ` Richard Weinberger 2018-03-15 8:47 ` Arvind Yadav 0 siblings, 1 reply; 5+ messages in thread From: Richard Weinberger @ 2018-03-15 7:55 UTC (permalink / raw) To: Arvind Yadav Cc: dwmw2, computersforpeace, boris.brezillon, marek.vasut, cyrille.pitchen, dedekind1, linux-kernel, linux-mtd Am Donnerstag, 15. März 2018, 08:20:31 CET schrieb Arvind Yadav: > if device_register() returned an error! Always use put_device() > to give up the reference initialized. Like DaveM said, there is no need to shout and use "!". > Signed-off-by: Arvind Yadav <arvind.yadav.cs@gmail.com> > --- > change in v2: > Fix use-after-free bug. move put_device() after cdev_del(). > > drivers/mtd/ubi/vmt.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/drivers/mtd/ubi/vmt.c b/drivers/mtd/ubi/vmt.c > index 3fd8d7f..93c6163 100644 > --- a/drivers/mtd/ubi/vmt.c > +++ b/drivers/mtd/ubi/vmt.c > @@ -610,6 +610,7 @@ int ubi_add_volume(struct ubi_device *ubi, struct > ubi_volume *vol) > > out_cdev: > cdev_del(&vol->cdev); > + put_device(&vol->dev); > return err; The more I dig into device code, the more questions I have. Why is cdev_del() not part of the release function? Thanks, //richard ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH 2/2 v2] mtd: ubi: use put_device() if device_register fail 2018-03-15 7:55 ` Richard Weinberger @ 2018-03-15 8:47 ` Arvind Yadav 2018-03-15 17:41 ` arvindY 0 siblings, 1 reply; 5+ messages in thread From: Arvind Yadav @ 2018-03-15 8:47 UTC (permalink / raw) To: Richard Weinberger Cc: dwmw2, computersforpeace, boris.brezillon, marek.vasut, cyrille.pitchen, dedekind1, linux-kernel, linux-mtd On Thursday 15 March 2018 01:25 PM, Richard Weinberger wrote: > Am Donnerstag, 15. März 2018, 08:20:31 CET schrieb Arvind Yadav: >> if device_register() returned an error! Always use put_device() >> to give up the reference initialized. > Like DaveM said, there is no need to shout and use "!". I will fix this and send you update patch. > >> Signed-off-by: Arvind Yadav <arvind.yadav.cs@gmail.com> >> --- >> change in v2: >> Fix use-after-free bug. move put_device() after cdev_del(). >> >> drivers/mtd/ubi/vmt.c | 1 + >> 1 file changed, 1 insertion(+) >> >> diff --git a/drivers/mtd/ubi/vmt.c b/drivers/mtd/ubi/vmt.c >> index 3fd8d7f..93c6163 100644 >> --- a/drivers/mtd/ubi/vmt.c >> +++ b/drivers/mtd/ubi/vmt.c >> @@ -610,6 +610,7 @@ int ubi_add_volume(struct ubi_device *ubi, struct >> ubi_volume *vol) >> >> out_cdev: >> cdev_del(&vol->cdev); >> + put_device(&vol->dev); >> return err; > The more I dig into device code, the more questions I have. > Why is cdev_del() not part of the release function? > > Thanks, > //richard Yes, It's should be a part release function. ~arvind ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH 2/2 v2] mtd: ubi: use put_device() if device_register fail 2018-03-15 8:47 ` Arvind Yadav @ 2018-03-15 17:41 ` arvindY 2018-03-16 7:50 ` Richard Weinberger 0 siblings, 1 reply; 5+ messages in thread From: arvindY @ 2018-03-15 17:41 UTC (permalink / raw) To: Richard Weinberger Cc: dwmw2, computersforpeace, boris.brezillon, marek.vasut, cyrille.pitchen, dedekind1, linux-kernel, linux-mtd On Thursday 15 March 2018 02:17 PM, Arvind Yadav wrote: > > > On Thursday 15 March 2018 01:25 PM, Richard Weinberger wrote: >> Am Donnerstag, 15. März 2018, 08:20:31 CET schrieb Arvind Yadav: >>> if device_register() returned an error! Always use put_device() >>> to give up the reference initialized. >> Like DaveM said, there is no need to shout and use "!". > > I will fix this and send you update patch. >>> Signed-off-by: Arvind Yadav <arvind.yadav.cs@gmail.com> >>> --- >>> change in v2: >>> Fix use-after-free bug. move put_device() after cdev_del(). >>> >>> drivers/mtd/ubi/vmt.c | 1 + >>> 1 file changed, 1 insertion(+) >>> >>> diff --git a/drivers/mtd/ubi/vmt.c b/drivers/mtd/ubi/vmt.c >>> index 3fd8d7f..93c6163 100644 >>> --- a/drivers/mtd/ubi/vmt.c >>> +++ b/drivers/mtd/ubi/vmt.c >>> @@ -610,6 +610,7 @@ int ubi_add_volume(struct ubi_device *ubi, struct >>> ubi_volume *vol) >>> >>> out_cdev: >>> cdev_del(&vol->cdev); >>> + put_device(&vol->dev); >>> return err; >> The more I dig into device code, the more questions I have. >> Why is cdev_del() not part of the release function? >> >> Thanks, >> //richard > > Yes, It's should be a part release function. > > ~arvind I was wrong, We can not add cdev_del() in release(vol_release) function. Function's ubi_create_volume and ubi_add_volume both are using same release function to release a volume devices. ubi_add_volume is registering character device for the volume. So we will have to release character device here. ~arvind ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH 2/2 v2] mtd: ubi: use put_device() if device_register fail 2018-03-15 17:41 ` arvindY @ 2018-03-16 7:50 ` Richard Weinberger 0 siblings, 0 replies; 5+ messages in thread From: Richard Weinberger @ 2018-03-16 7:50 UTC (permalink / raw) To: arvindY Cc: dwmw2, computersforpeace, boris.brezillon, marek.vasut, cyrille.pitchen, dedekind1, linux-kernel, linux-mtd Arvind, Am Donnerstag, 15. März 2018, 18:41:58 CET schrieb arvindY: > On Thursday 15 March 2018 02:17 PM, Arvind Yadav wrote: > > On Thursday 15 March 2018 01:25 PM, Richard Weinberger wrote: > >> Am Donnerstag, 15. März 2018, 08:20:31 CET schrieb Arvind Yadav: > >>> if device_register() returned an error! Always use put_device() > >>> to give up the reference initialized. > >> > >> Like DaveM said, there is no need to shout and use "!". > > > > I will fix this and send you update patch. > > > >>> Signed-off-by: Arvind Yadav <arvind.yadav.cs@gmail.com> > >>> --- > >>> > >>> change in v2: > >>> Fix use-after-free bug. move put_device() after cdev_del(). > >>> > >>> drivers/mtd/ubi/vmt.c | 1 + > >>> 1 file changed, 1 insertion(+) > >>> > >>> diff --git a/drivers/mtd/ubi/vmt.c b/drivers/mtd/ubi/vmt.c > >>> index 3fd8d7f..93c6163 100644 > >>> --- a/drivers/mtd/ubi/vmt.c > >>> +++ b/drivers/mtd/ubi/vmt.c > >>> @@ -610,6 +610,7 @@ int ubi_add_volume(struct ubi_device *ubi, struct > >>> ubi_volume *vol) > >>> > >>> out_cdev: > >>> cdev_del(&vol->cdev); > >>> > >>> + put_device(&vol->dev); > >>> > >>> return err; > >> > >> The more I dig into device code, the more questions I have. > >> Why is cdev_del() not part of the release function? > >> > >> Thanks, > >> //richard > > > > Yes, It's should be a part release function. > > > > ~arvind > > I was wrong, We can not add cdev_del() in release(vol_release) > function. > Function's ubi_create_volume and ubi_add_volume both are using > same release function to release a volume devices. > ubi_add_volume is registering character device for the volume. > So we will have to release character device here. This is not what I meant. The question was whether we should free all this data structures from the device model's point of view. That we have to massage UBI code for that is clear. Thanks, //richard ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2018-03-16 7:48 UTC | newest] Thread overview: 5+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2018-03-15 7:20 [PATCH 2/2 v2] mtd: ubi: use put_device() if device_register fail Arvind Yadav 2018-03-15 7:55 ` Richard Weinberger 2018-03-15 8:47 ` Arvind Yadav 2018-03-15 17:41 ` arvindY 2018-03-16 7:50 ` Richard Weinberger
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox