Re: [PATCH v7 04/13] slimbus: core: Add slim controllers support

From: Greg KH
Date: Fri Nov 17 2017 - 03:13:26 EST


On Fri, Nov 17, 2017 at 10:12:22AM +0530, Vinod Koul wrote:
> On Thu, Nov 16, 2017 at 05:29:35PM +0000, Srinivas Kandagatla wrote:
> > thanks for the comments.
> >
> >
> > On 16/11/17 16:42, Vinod Koul wrote:
> > >On Wed, Nov 15, 2017 at 02:10:34PM +0000, srinivas.kandagatla@xxxxxxxxxx wrote:
> > >
> > >>+static void slim_dev_release(struct device *dev)
> > >>+{
> > >>+ struct slim_device *sbdev = to_slim_device(dev);
> > >>+
> > >>+ put_device(sbdev->ctrl->dev);
> > >
> > >which device would that be?
> > This is controller device
> >
> > >
> > >>+static int slim_add_device(struct slim_controller *ctrl,
> > >>+ struct slim_device *sbdev,
> > >>+ struct device_node *node)
> > >>+{
> > >>+ sbdev->dev.bus = &slimbus_bus;
> > >>+ sbdev->dev.parent = ctrl->dev;
> > >>+ sbdev->dev.release = slim_dev_release;
> > >>+ sbdev->dev.driver = NULL;
> > >>+ sbdev->ctrl = ctrl;
> > >>+
> > >>+ dev_set_name(&sbdev->dev, "%x:%x:%x:%x",
> > >>+ sbdev->e_addr.manf_id,
> > >>+ sbdev->e_addr.prod_code,
> > >>+ sbdev->e_addr.dev_index,
> > >>+ sbdev->e_addr.instance);
> > >>+
> > >>+ get_device(ctrl->dev);
> > >
> > >is this controller device and you ensuring it doesnt go away while you have
> > >slaves on it?
> >
> > Yes.
>
> I thought since you are marking ctrl->dev as parent, the device core should
> ensure that parent doesn't go off when you have child device?
>
> Greg, is that understanding correct, if so we may not need these calls.

That understanding should be correct, as the reference count is
incremented on the parent when a child is added.

It would be trivial for this to be tested, and yes, I am pretty sure you
don't need this call.

thanks,

greg k-h