On Wednesday, November 17, 2010 08:16:27 Figo.zhang wrote: > On 11/17/2010 03:11 PM, Hans Verkuil wrote: > > On Wednesday, November 17, 2010 02:38:09 Andrew Chew wrote: > >>>> diff --git a/drivers/media/video/videobuf-dma-contig.c > >>> b/drivers/media/video/videobuf-dma-contig.c > >>>> index c969111..f7e0f86 100644 > >>>> --- a/drivers/media/video/videobuf-dma-contig.c > >>>> +++ b/drivers/media/video/videobuf-dma-contig.c > >>>> @@ -193,6 +193,8 @@ static struct videobuf_buffer > >>> *__videobuf_alloc_vb(size_t size) > >>>> if (vb) { > >>>> mem = vb->priv = ((char *)vb) + size; > >>>> mem->magic = MAGIC_DC_MEM; > >>>> + INIT_LIST_HEAD(&vb->stream); > >>>> + INIT_LIST_HEAD(&vb->queue); > >>> > >>> i think it no need to be init, it just a list-entry. > >> > >> Okay, if that's really the case, then sh_mobile_ceu_camera.c, pxa_camera.c, mx1_camera.c, mx2_camera.c, and omap1_camera.c needs to be fixed to remove that WARN_ON(!list_empty(&vb->queue)); in their videobuf_prepare() methods, because those WARN_ON's are assuming that vb->queue is properly initialized as a list head. > >> > >> Which will it be? > >> > > > > These list entries need to be inited. It is bad form to have uninitialized > > list entries. It is not as if this is a big deal to initialize them properly. > > in kernel source code, list entry are not often to be inited. > > for example, see mm/vmscan.c register_shrinker(), no one init the > shrinker->list. > > another example: see mm/swapfile.c add_swap_extent(), no one init the > new_se->list. I have to think some more about this. I'll get back to this today. BTW, I do agree that the WARN_ON's are bogus and should be removed. And BTW, this isn't going to work either (mx1_camera.c): static int mx1_camera_setup_dma(struct mx1_camera_dev *pcdev) { struct videobuf_buffer *vbuf = &pcdev->active->vb; struct device *dev = pcdev->icd->dev.parent; int ret; if (unlikely(!pcdev->active)) { dev_err(dev, "DMA End IRQ with no active buffer\n"); return -EFAULT; } The vbuf assignment should be moved after the 'if'. 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