Re: [PATCH] pktcdvd : add kobject_put when kobject register fails

2007-12-04 Thread Dave Young
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

2007-12-04 Thread Pekka J Enberg
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

2007-12-04 Thread Dave Young
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

2007-12-04 Thread Dave Young
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

2007-12-04 Thread Pekka J Enberg
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

2007-12-04 Thread Dave Young
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

2007-12-03 Thread Pekka Enberg
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

2007-12-03 Thread Dave Young
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

2007-12-03 Thread Dave Young
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

2007-12-03 Thread Pekka Enberg
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/