On Mon, Nov 20, 2017 at 06:47:58AM +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 for suggestion, I will remove this in next version. I think it might be helpful to test the assumption as Greg noted :) -- ~Vinod -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html