Re: [PATCH v8 1/1] serial: core: Start managing serial controllers to enable runtime PM

From: Tony Lindgren
Date: Wed Mar 22 2023 - 11:45:00 EST


* Andy Shevchenko <andriy.shevchenko@xxxxxxxxx> [230322 14:45]:
> On Wed, Mar 22, 2023 at 01:12:51PM +0200, Tony Lindgren wrote:
> > + device_initialize(&sbd->dev);
> > + sbd->dev.parent = parent_dev;
> > + sbd->dev.bus = &serial_base_bus_type;
> > + sbd->dev.release = &serial_base_release;
> > +
> > + if (str_has_prefix(name, "ctrl")) {
> > + id = port->ctrl_id;
> > + } else {
> > + id = port->line;
> > + sbd->port = port;
> > + }
> > +
> > + err = dev_set_name(&sbd->dev, "%s.%s.%d", name, dev_name(port->dev), id);
> > + if (err)
> > + goto err_free_dev;
> > +
> > + err = device_add(&sbd->dev);
> > + if (err)
> > + goto err_put_device;
> > +
> > + return &sbd->dev;
> > +
> > +err_put_device:
> > + put_device(&sbd->dev);
>
> > + kfree_const(sbd->dev.kobj.name);
>
> This is double free if not const, right?
> At least that's how I read kobject_cleanup() implementation.
>
> Sorry I haven't paid attention to this earlier.

Thanks for spotting that, will drop it. Looks like we have the name
allocated by kobject_set_name_vargs(), and then kobject_cleanup()
frees it.

> ...
>
> > +/*
> > + * Serial core port device driver
> > + */
>
> Put it on one line for now?

Sure, will do.

Thanks,

Tony