On Wed, Sep 22, 2010 at 08:50 -0700, Greg KH wrote: > On Wed, Sep 22, 2010 at 10:53:21AM +0200, Kay Sievers wrote: > > On Wed, Sep 22, 2010 at 00:49, Greg KH <greg@xxxxxxxxx> wrote: > > > > > int device_register(struct device *dev) > > > { > > > + int retval; > > > + > > > device_initialize(dev); > > > - return device_add(dev); > > > + retval = device_add(dev); > > > + if (retval) > > > + put_device(dev); > > > + return retval; > > > } > > > > > Kay, what am I missing here, why can't we just do this? Hm, the > > > side-affect might be that if device_register() fails, NO ONE had better > > > touch that device again, as it might have just been freed from the > > > system. I wonder if that will cause problems... > > > > That looks right, besides that there might be callers already doing > > this. Which needs to be checked. > > Yes, it would be. I'll go through the tree. As I see with this in-device_register patch we should check for 2 things: 1) nobody should call put_device() because of failed device_register(). 2) dev has to be already got, other words its ref counter should not be zero. Correct? -- Vasiliy -- To unsubscribe from this list: send the line "unsubscribe kernel-janitors" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html