Am 27.01.2016 um 13:08 schrieb Hans Verkuil: > The vb2_thread implementation was made generic and was moved from > videobuf2-v4l2.c to videobuf2-core.c in commit af3bac1a. Unfortunately > that clearly was never tested since it broke read() causing NULL address > references. > > The root cause was confused handling of vb2_buffer vs v4l2_buffer (the pb > pointer in various core functions). > > The v4l2_buffer no longer exists after moving the code into the core and > it is no longer needed. However, the vb2_thread code passed a pointer to > a vb2_buffer to the core functions were a v4l2_buffer pointer was expected > and vb2_thread expected that the vb2_buffer fields would be filled in > correctly. > > This is obviously wrong since v4l2_buffer != vb2_buffer. Note that the > pb pointer is a void pointer, so no type-checking took place. > > This patch fixes this problem: > > 1) allow pb to be NULL for vb2_core_(d)qbuf. The vb2_thread code will use > a NULL pointer here since they don't care about v4l2_buffer anyway. > 2) let vb2_core_dqbuf pass back the index of the received buffer. This is > all vb2_thread needs: this index is the index into the q->bufs array > and vb2_thread just gets the vb2_buffer from there. > 3) the fileio->b pointer (that originally contained a v4l2_buffer) is > removed altogether since it is no longer needed. > > Tested with vivid and the cobalt driver. > > Signed-off-by: Hans Verkuil <hans.verkuil@xxxxxxxxx> > Tested-by: Hans Verkuil <hans.verkuil@xxxxxxxxx> > Reported-by: Matthias Schwarzott <zzam@xxxxxxxxxx> Hi Hans! Thank you for this patch. I gave this patch a try on the latest sources from git://linuxtv.org/media_tree.git Compiled for kernel 4.2.8 with media_build. Now it no longer oopses. It tunes fine (according to femon), but I still do not get a picture/dvbtraffic reports nothing. Regards Matthias -- 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