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

