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 majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to