Re: [PATCH] pktcdvd : add kobject_put when kobject register fails
On Tue, Dec 04, 2007 at 10:05:24AM +0200, Pekka J Enberg wrote: > Hi Dave, > > On Tue, 4 Dec 2007, Dave Young wrote: > > the kobject reference is get in kobject_init, and then kobject_add, if > > kobject_add fail, it will only cleanup the reference got by itsself. > > > > This topic is discussed in: > > http://lkml.org/lkml/2007/11/30/9 > > Ok, thanks! Please the explanation to the changelog too. > Ok, lets add some explanation. -- kobject_put should be called when kobject register functioin fails. In kobject_register, the kobject reference is get in kobject_init, and then kobject_add. If kobject_add fail, it will only cleanup the reference got by itself. Signed-off-by: Dave Young <[EMAIL PROTECTED]> Reviewed-by: Pekka Enberg <[EMAIL PROTECTED]> --- drivers/block/pktcdvd.c |4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff -upr linux/drivers/block/pktcdvd.c linux.new/drivers/block/pktcdvd.c --- linux/drivers/block/pktcdvd.c 2007-11-30 13:13:44.0 +0800 +++ linux.new/drivers/block/pktcdvd.c 2007-11-30 13:24:08.0 +0800 @@ -117,8 +117,10 @@ static struct pktcdvd_kobj* pkt_kobj_cre p->kobj.parent = parent; p->kobj.ktype = ktype; p->pd = pd; - if (kobject_register(>kobj) != 0) + if (kobject_register(>kobj) != 0) { + kobject_put(>kobj); return NULL; + } return p; } /* -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH] pktcdvd : add kobject_put when kobject register fails
Hi Dave, On Tue, 4 Dec 2007, Dave Young wrote: > the kobject reference is get in kobject_init, and then kobject_add, if > kobject_add fail, it will only cleanup the reference got by itsself. > > This topic is discussed in: > http://lkml.org/lkml/2007/11/30/9 Ok, thanks! Please the explanation to the changelog too. Reviewed-by: Pekka Enberg <[EMAIL PROTECTED]> Pekka -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH] pktcdvd : add kobject_put when kobject register fails
On Dec 4, 2007 3:45 PM, Pekka Enberg <[EMAIL PROTECTED]> wrote: > Hi Dave, > > On Dec 4, 2007 3:31 AM, Dave Young <[EMAIL PROTECTED]> wrote: > > Kobject_put should be called when kobject register functioin fails, so the > > the kobj ref count touch zero and then the proper cleanup routines will be > > called. > > [snip] > > > diff -upr linux/drivers/block/pktcdvd.c linux.new/drivers/block/pktcdvd.c > > --- linux/drivers/block/pktcdvd.c 2007-11-30 13:13:44.0 +0800 > > +++ linux.new/drivers/block/pktcdvd.c 2007-11-30 13:24:08.0 +0800 > > @@ -117,8 +117,10 @@ static struct pktcdvd_kobj* pkt_kobj_cre > > p->kobj.parent = parent; > > p->kobj.ktype = ktype; > > p->pd = pd; > > - if (kobject_register(>kobj) != 0) > > + if (kobject_register(>kobj) != 0) { > > + kobject_put(>kobj); > > return NULL; > > This looks wrong to me. AFAICT the only thing that can fail > kobject_register() is kobject_add() and it cleans up after itself. Am > I missing something here? Hi, the kobject reference is get in kobject_init, and then kobject_add, if kobject_add fail, it will only cleanup the reference got by itsself. This topic is discussed in: http://lkml.org/lkml/2007/11/30/9 Regards dave > >Pekka > -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH] pktcdvd : add kobject_put when kobject register fails
On Dec 4, 2007 3:45 PM, Pekka Enberg [EMAIL PROTECTED] wrote: Hi Dave, On Dec 4, 2007 3:31 AM, Dave Young [EMAIL PROTECTED] wrote: Kobject_put should be called when kobject register functioin fails, so the the kobj ref count touch zero and then the proper cleanup routines will be called. [snip] diff -upr linux/drivers/block/pktcdvd.c linux.new/drivers/block/pktcdvd.c --- linux/drivers/block/pktcdvd.c 2007-11-30 13:13:44.0 +0800 +++ linux.new/drivers/block/pktcdvd.c 2007-11-30 13:24:08.0 +0800 @@ -117,8 +117,10 @@ static struct pktcdvd_kobj* pkt_kobj_cre p-kobj.parent = parent; p-kobj.ktype = ktype; p-pd = pd; - if (kobject_register(p-kobj) != 0) + if (kobject_register(p-kobj) != 0) { + kobject_put(p-kobj); return NULL; This looks wrong to me. AFAICT the only thing that can fail kobject_register() is kobject_add() and it cleans up after itself. Am I missing something here? Hi, the kobject reference is get in kobject_init, and then kobject_add, if kobject_add fail, it will only cleanup the reference got by itsself. This topic is discussed in: http://lkml.org/lkml/2007/11/30/9 Regards dave Pekka -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH] pktcdvd : add kobject_put when kobject register fails
Hi Dave, On Tue, 4 Dec 2007, Dave Young wrote: the kobject reference is get in kobject_init, and then kobject_add, if kobject_add fail, it will only cleanup the reference got by itsself. This topic is discussed in: http://lkml.org/lkml/2007/11/30/9 Ok, thanks! Please the explanation to the changelog too. Reviewed-by: Pekka Enberg [EMAIL PROTECTED] Pekka -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH] pktcdvd : add kobject_put when kobject register fails
On Tue, Dec 04, 2007 at 10:05:24AM +0200, Pekka J Enberg wrote: Hi Dave, On Tue, 4 Dec 2007, Dave Young wrote: the kobject reference is get in kobject_init, and then kobject_add, if kobject_add fail, it will only cleanup the reference got by itsself. This topic is discussed in: http://lkml.org/lkml/2007/11/30/9 Ok, thanks! Please the explanation to the changelog too. Ok, lets add some explanation. -- kobject_put should be called when kobject register functioin fails. In kobject_register, the kobject reference is get in kobject_init, and then kobject_add. If kobject_add fail, it will only cleanup the reference got by itself. Signed-off-by: Dave Young [EMAIL PROTECTED] Reviewed-by: Pekka Enberg [EMAIL PROTECTED] --- drivers/block/pktcdvd.c |4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff -upr linux/drivers/block/pktcdvd.c linux.new/drivers/block/pktcdvd.c --- linux/drivers/block/pktcdvd.c 2007-11-30 13:13:44.0 +0800 +++ linux.new/drivers/block/pktcdvd.c 2007-11-30 13:24:08.0 +0800 @@ -117,8 +117,10 @@ static struct pktcdvd_kobj* pkt_kobj_cre p-kobj.parent = parent; p-kobj.ktype = ktype; p-pd = pd; - if (kobject_register(p-kobj) != 0) + if (kobject_register(p-kobj) != 0) { + kobject_put(p-kobj); return NULL; + } return p; } /* -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH] pktcdvd : add kobject_put when kobject register fails
Hi Dave, On Dec 4, 2007 3:31 AM, Dave Young <[EMAIL PROTECTED]> wrote: > Kobject_put should be called when kobject register functioin fails, so the > the kobj ref count touch zero and then the proper cleanup routines will be > called. [snip] > diff -upr linux/drivers/block/pktcdvd.c linux.new/drivers/block/pktcdvd.c > --- linux/drivers/block/pktcdvd.c 2007-11-30 13:13:44.0 +0800 > +++ linux.new/drivers/block/pktcdvd.c 2007-11-30 13:24:08.0 +0800 > @@ -117,8 +117,10 @@ static struct pktcdvd_kobj* pkt_kobj_cre > p->kobj.parent = parent; > p->kobj.ktype = ktype; > p->pd = pd; > - if (kobject_register(>kobj) != 0) > + if (kobject_register(>kobj) != 0) { > + kobject_put(>kobj); > return NULL; This looks wrong to me. AFAICT the only thing that can fail kobject_register() is kobject_add() and it cleans up after itself. Am I missing something here? Pekka -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[PATCH] pktcdvd : add kobject_put when kobject register fails
Kobject_put should be called when kobject register functioin fails, so the the kobj ref count touch zero and then the proper cleanup routines will be called. Signed-off-by: Dave Young <[EMAIL PROTECTED]> --- drivers/block/pktcdvd.c |4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff -upr linux/drivers/block/pktcdvd.c linux.new/drivers/block/pktcdvd.c --- linux/drivers/block/pktcdvd.c 2007-11-30 13:13:44.0 +0800 +++ linux.new/drivers/block/pktcdvd.c 2007-11-30 13:24:08.0 +0800 @@ -117,8 +117,10 @@ static struct pktcdvd_kobj* pkt_kobj_cre p->kobj.parent = parent; p->kobj.ktype = ktype; p->pd = pd; - if (kobject_register(>kobj) != 0) + if (kobject_register(>kobj) != 0) { + kobject_put(>kobj); return NULL; + } return p; } /* -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[PATCH] pktcdvd : add kobject_put when kobject register fails
Kobject_put should be called when kobject register functioin fails, so the the kobj ref count touch zero and then the proper cleanup routines will be called. Signed-off-by: Dave Young [EMAIL PROTECTED] --- drivers/block/pktcdvd.c |4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff -upr linux/drivers/block/pktcdvd.c linux.new/drivers/block/pktcdvd.c --- linux/drivers/block/pktcdvd.c 2007-11-30 13:13:44.0 +0800 +++ linux.new/drivers/block/pktcdvd.c 2007-11-30 13:24:08.0 +0800 @@ -117,8 +117,10 @@ static struct pktcdvd_kobj* pkt_kobj_cre p-kobj.parent = parent; p-kobj.ktype = ktype; p-pd = pd; - if (kobject_register(p-kobj) != 0) + if (kobject_register(p-kobj) != 0) { + kobject_put(p-kobj); return NULL; + } return p; } /* -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH] pktcdvd : add kobject_put when kobject register fails
Hi Dave, On Dec 4, 2007 3:31 AM, Dave Young [EMAIL PROTECTED] wrote: Kobject_put should be called when kobject register functioin fails, so the the kobj ref count touch zero and then the proper cleanup routines will be called. [snip] diff -upr linux/drivers/block/pktcdvd.c linux.new/drivers/block/pktcdvd.c --- linux/drivers/block/pktcdvd.c 2007-11-30 13:13:44.0 +0800 +++ linux.new/drivers/block/pktcdvd.c 2007-11-30 13:24:08.0 +0800 @@ -117,8 +117,10 @@ static struct pktcdvd_kobj* pkt_kobj_cre p-kobj.parent = parent; p-kobj.ktype = ktype; p-pd = pd; - if (kobject_register(p-kobj) != 0) + if (kobject_register(p-kobj) != 0) { + kobject_put(p-kobj); return NULL; This looks wrong to me. AFAICT the only thing that can fail kobject_register() is kobject_add() and it cleans up after itself. Am I missing something here? Pekka -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/