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. 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