Em Sat, 20 Sep 2014 07:08:08 -0300 Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxxxx> escreveu: > Em Sat, 20 Sep 2014 11:14:16 +0200 > Hans Verkuil <hverkuil@xxxxxxxxx> escreveu: > > > On 09/20/2014 11:08 AM, James Harper wrote: > > >> > > >> The recent conversion of saa7134 to vb2 unconvered a poll() bug that > > >> broke the teletext applications alevt and mtt. These applications > > >> expect that calling poll() without having called VIDIOC_STREAMON will > > >> cause poll() to return POLLERR. That did not happen in vb2. > > >> > > >> This patch fixes that behavior. It also fixes what should happen when > > >> poll() is called when STREAMON is called but no buffers have been > > >> queued. In that case poll() will also return POLLERR, but only for > > >> capture queues since output queues will always return POLLOUT > > >> anyway in that situation. > > >> > > >> This brings the vb2 behavior in line with the old videobuf behavior. > > >> > > > > > > What (mis)behaviour would this cause in userspace application? > > > > If an app would rely on poll to return POLLERR to do the initial STREAMON > > (seen in e.g. alevt) or to do the initial QBUF (I'm not aware of any apps > > that do that, but they may exist), then that will currently fail with vb2 > > because poll() will just wait indefinitely in those cases. > > You forgot to mention (also at the patch series) that the removal of > list_empty() check solves the buffer underrun condition. Actually, no need to comment it there, as I'll be removing the revert patch from topic/devel. If James is using master (likely the case), then the list_empty issue is not affecting him, as the revert is just at topic/devel. > > With this fix, if a multi-threaded application goes into an underrun > condition (e. g. if it de-queues faster than queues), a POLLERR would be > received. The poll fixup patch series also fixes it. > > 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 -- 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