Hi Alex

On Mon, 30 Jul 2012, Alex Gershgorin wrote:

> This patch check the state of the buffer when calling buf_init() method.
> The thread 
> http://thread.gmane.org/gmane.linux.drivers.video-input-infrastructure/48587
> also includes report witch can show the problem. This patch solved the 
> problem.
> Both MMAP and USERPTR methods was successfully tested.
> 
> Signed-off-by: Alex Gershgorin <al...@meprolight.com>
> ---
>  drivers/media/video/mx3_camera.c |   12 +++++++-----
>  1 files changed, 7 insertions(+), 5 deletions(-)
> 
> diff --git a/drivers/media/video/mx3_camera.c 
> b/drivers/media/video/mx3_camera.c
> index f13643d..950a8fe 100644
> --- a/drivers/media/video/mx3_camera.c
> +++ b/drivers/media/video/mx3_camera.c
> @@ -405,13 +405,15 @@ static int mx3_videobuf_init(struct vb2_buffer *vb)

Sorry, don't understand. As we see in the thread, mentioned above, the 
Oops happened in mx3_videobuf_release(). If my analysis was correct in 
that thread, that Oops happened, when .buf_cleanup() was called without 
.buf_init() being called. This your patch modifies mx3_videobuf_init(). 
which isn't even called in the problem case. How does this help?

Thanks
Guennadi

>       struct mx3_camera_dev *mx3_cam = ici->priv;
>       struct mx3_camera_buffer *buf = to_mx3_vb(vb);
>  
> -     /* This is for locking debugging only */
> -     INIT_LIST_HEAD(&buf->queue);
> -     sg_init_table(&buf->sg, 1);
> +     if (buf->state != CSI_BUF_PREPARED) {
> +             /* This is for locking debugging only */
> +             INIT_LIST_HEAD(&buf->queue);
> +             sg_init_table(&buf->sg, 1);
>  
> -     buf->state = CSI_BUF_NEEDS_INIT;
> +             buf->state = CSI_BUF_NEEDS_INIT;
>  
> -     mx3_cam->buf_total += vb2_plane_size(vb, 0);
> +             mx3_cam->buf_total += vb2_plane_size(vb, 0);
> +     }
>  
>       return 0;
>  }
> -- 
> 1.7.0.4
> 

---
Guennadi Liakhovetski, Ph.D.
Freelance Open-Source Software Developer
http://www.open-technology.de/
--
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