On Tuesday, November 16, 2010 08:37:32 Hans Verkuil wrote: > On Tuesday, November 16, 2010 02:10:39 Andrew Chew wrote: > > I'm looking at drivers/media/video/videobuf-dma-contig.c's __videobuf_alloc() routine. We call kzalloc() to allocate the videobuf_buffer. However, I don't see where the two lists (vb->stream and vb->queue) that are a part of struct videobuf_buffer get initialized (with, say, INIT_LIST_HEAD). > > Yuck. The videobuf framework doesn't initialize vb-stream at all. It relies on > list_add_tail to effectively initialize it for it. It works, but it is not > exactly clean programming :-( > > The vb->queue list has to be initialized in the driver. Never understood the > reason for that either. I'm actually not sure about that. I know I had problems in my driver so I had to initialize it myself. But it seems not all drivers do that. > Marek, can you make sure that videobuf2 will initialize these lists correctly? > That is, vb2 should do this initialization instead of the driver. lists -> list entries > > > This results in a warning in the V4L2 camera host driver that I'm developing when the buf_prepare method gets called. I do a similar sanity check to the sh_mobile_ceu_camera driver (WARN_ON(!list->empty(&vb->queue));) in my buf_prepare method, and see the warning. If I add INIT_LIST_HEAD to __videobuf_alloc(), this warning goes away. > > > > Is this a known bug? > > Well, videobuf is one big bug. We hope that we can merge the videobuf replacement > (called videobuf2, amazingly enough :-) ) for 2.6.38. Fingers crossed. > > So you might want to wait until vb2 arrives, depending on your schedule. > > Regards, > > Hans > > -- Hans Verkuil - video4linux developer - sponsored by Cisco -- 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