Re: [PATCH RFC] omap3isp: prevent releasing MC too early

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Em Thu, 15 Dec 2016 09:42:35 -0300
Javier Martinez Canillas <javier@xxxxxxxxxxxxxxx> escreveu:

> Hello Mauro,
> 
> On 12/15/2016 09:37 AM, Mauro Carvalho Chehab wrote:
> 
> [snip]
> 
> > 
> > What happens is that omap3isp driver calls media_device_unregister()
> > too early. Right now, it is called at omap3isp_video_device_release(),
> > with happens when a driver unbind is ordered by userspace, and not after
> > the last usage of all /dev/video?? devices.
> > 
> > There are two possible fixes:
> > 
> > 1) at omap3isp_video_device_release(), streamoff all streams and mark
> > that the media device will be gone.

I actually meant to say: isp_unregister_entities() here.

> > 
> > 2) instead of using video_device_release_empty for the video->video.release,
> > create a omap3isp_video_device_release() that will call
> > media_device_unregister() when destroying the last /dev/video?? devnode.
> >  
> 
> There's also option (3), to have a proper refcounting to make sure that
> the media device node is not freed until all references to it are gone.

Yes, that's another alternative.

> I understand that's what Sakari's RFC patches do. I'll try to make some
> time tomorrow to test and review his patches.

The biggest problem with Sakari's patches is that it starts by 
reverting 3 patches, and this will cause regressions on existing
devices.

Development should be incremental.

I didn't review carefully his series (as it started the wrong way),
but I guess there's another problem on it: as OMAP3 remove entities
at isp_unregister_entities(), while adding a kref to media_device
will prevent an oops, the streamoff logic won't work anymore, as
the entities that were supposed to be at the graph will have been
removed by then.

Ok, we can roll the snow ball and add kref's to entities and links,
but IMHO, we're trying to kill a fly with a death star: instead,
the better is to just fix the driver in a way that it would be
streaming off everything at isp_unregister_entities(), before
dropping the entities and the media controller.

Regards,
Mauro
--
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



[Index of Archives]     [Linux Input]     [Video for Linux]     [Gstreamer Embedded]     [Mplayer Users]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]
  Powered by Linux