Re: [PATCH] v4l2: Change call of function in videobuf2-core.c

From: Hans Verkuil
Date: Mon Aug 04 2014 - 01:03:32 EST


On 08/04/2014 05:25 AM, Nicholas Krause wrote:
> This patch changes the call of vb2_buffer_core to use VB2_BUFFER_STATE_ACTIVE
> inside the for instead of not setting in correctly to VB2_BUFFER_STATE_ERROR.
>
> Signed-off-by: Nicholas Krause <xerofoify@xxxxxxxxx>

Dunno what's going on here after reading Dave Airlie's reply, but:

Nacked-by: Hans Verkuil <hans.verkuil@xxxxxxxxx>

It's clearly wrong and if you get here at all you have a driver bug anyway. That
WARN_ON is there for a reason. Your driver isn't returning buffers correctly in
stop_streaming or in start_streaming if start_streaming fails with an error.

Regards,

Hans

> ---
> drivers/media/v4l2-core/videobuf2-core.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/media/v4l2-core/videobuf2-core.c b/drivers/media/v4l2-core/videobuf2-core.c
> index 7c4489c..08e478b 100644
> --- a/drivers/media/v4l2-core/videobuf2-core.c
> +++ b/drivers/media/v4l2-core/videobuf2-core.c
> @@ -2115,7 +2115,7 @@ static void __vb2_queue_cancel(struct vb2_queue *q)
> if (WARN_ON(atomic_read(&q->owned_by_drv_count))) {
> for (i = 0; i < q->num_buffers; ++i)
> if (q->bufs[i]->state == VB2_BUF_STATE_ACTIVE)
> - vb2_buffer_done(q->bufs[i], VB2_BUF_STATE_ERROR);
> + vb2_buffer_done(q->bufs[i], VB2_BUF_STATE_ACTIVE);
> /* Must be zero now */
> WARN_ON(atomic_read(&q->owned_by_drv_count));
> }
>

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/