Messages in this thread | | | Date | Sun, 8 Dec 2013 15:42:33 +0100 | Subject | Re: [PATCH] driver core: fix device_create() error path | From | David Herrmann <> |
| |
Hi Greg
Ping?
Thanks David
On Thu, Nov 21, 2013 at 8:15 PM, David Herrmann <dh.herrmann@gmail.com> wrote: > We call put_device() in the error path, which is fine for dev==NULL. > However, in case kobject_set_name_vargs() fails, we have dev!=NULL but > device_initialized() wasn't called, yet. > > Fix this by splitting device_register() into explicit calls to > device_add() and an early call to device_initialize(). > > Signed-off-by: David Herrmann <dh.herrmann@gmail.com> > --- > drivers/base/core.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/drivers/base/core.c b/drivers/base/core.c > index 34abf4d..4be8911 100644 > --- a/drivers/base/core.c > +++ b/drivers/base/core.c > @@ -1676,6 +1676,7 @@ device_create_groups_vargs(struct class *class, struct device *parent, > goto error; > } > > + device_initialize(dev); > dev->devt = devt; > dev->class = class; > dev->parent = parent; > @@ -1687,7 +1688,7 @@ device_create_groups_vargs(struct class *class, struct device *parent, > if (retval) > goto error; > > - retval = device_register(dev); > + retval = device_add(dev); > if (retval) > goto error; > > -- > 1.8.4.2 >
| |