On Wed, Aug 03, 2016 at 07:12:51AM -0700, Dan Williams wrote:
> On Wed, Aug 3, 2016 at 7:01 AM, Johannes Thumshirn <[email protected]> wrote:
> > If either device_register() or nvdimm_bus_create_ndclt() fails we leak the
> > memory allocated for nvdimm_bus. Call kfree(nvdimm_bus) in the error path so
> > it's not leaked.
> >
> > Signed-off-by: Johannes Thumshirn <[email protected]>
> > ---
> >  drivers/nvdimm/core.c | 1 +
> >  1 file changed, 1 insertion(+)
> >
> > diff --git a/drivers/nvdimm/core.c b/drivers/nvdimm/core.c
> > index be89764..8578365 100644
> > --- a/drivers/nvdimm/core.c
> > +++ b/drivers/nvdimm/core.c
> > @@ -366,6 +366,7 @@ struct nvdimm_bus *__nvdimm_bus_register(struct device 
> > *parent,
> >         return nvdimm_bus;
> >   err:
> >         put_device(&nvdimm_bus->dev);
> > +       kfree(nvdimm_bus);
> >         return NULL;
> >  }
> >  EXPORT_SYMBOL_GPL(__nvdimm_bus_register);
> > --
> 
> This routine as moved to drivers/nvdimm/bus.c and I don't think this
> is valid since device_register() initialize the reference count, and
> the call to put_device() will trigger nvdimm_bus_release().

Which is correct...

Sorry for the unnecessary patch.

Johannes
-- 
Johannes Thumshirn                                          Storage
[email protected]                                +49 911 74053 689
SUSE LINUX GmbH, Maxfeldstr. 5, 90409 Nürnberg
GF: Felix Imendörffer, Jane Smithard, Graham Norton
HRB 21284 (AG Nürnberg)
Key fingerprint = EC38 9CAB C2C4 F25D 8600 D0D0 0393 969D 2D76 0850

Reply via email to