On 12/16/2016 06:32 AM, Sakari Ailus wrote: > Hi Laurent, > > On Thu, Dec 15, 2016 at 01:23:50PM +0200, Laurent Pinchart wrote: >>> @@ -1596,7 +1604,6 @@ static void isp_unregister_entities(struct isp_device >>> *isp) omap3isp_stat_unregister_entities(&isp->isp_af); >>> omap3isp_stat_unregister_entities(&isp->isp_hist); >>> >>> - v4l2_device_unregister(&isp->v4l2_dev); >> >> This isn't correct. The v4l2_device instance should be unregistered here, to >> make sure that the subdev nodes are unregistered too. And even if moving the >> function call was correct, it should be done in a separate patch as it's >> unrelated to $SUBJECT. > > I think I tried to fix another problem here we haven't considered before, > which is that v4l2_device_unregister() also unregisters the entities through > media_device_unregister_entity(). This will set the media device of the > graph objects NULL. > > I'll see whether something could be done to that. > Right That is what I was pointing out, when I said the cleanup routines are done in the wrong place. Entity registration and unregistration are distributed in nature. v4l2 register will register entities and unregister will unregister its entities. dvb will do the same. So essentially entities get added and removed when any of these drivers get unbound. Please see the following I posted on [RFC v3 00/21] Make use of kref in media device, grab references as needed > v4l2-core registers and unregisters entities and so does dvb-core. So when a > driver unregisters video and dvb, these entities get deleted. So we have a > distributed mode of registering and unregistering entities. We also have > ioctls (video, dvb, and media) accessing these entities. So where do we make > changes to ensure entities stick around until all users exit? > > Ref-counting entities won't work if they are embedded - like in the case of > struct video_device which embeds the media entity. When struct video goes > away then entity will disappear. So we do have a complex lifetime model here > that we need to figure out how to fix. thanks, -- Shuah -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html