[2/2] vb2: Handle return value from start_streaming callback

Message ID 1300663876-24712-2-git-send-email-pawel@osciak.com (mailing list archive)
State Superseded, archived
Headers

Commit Message

Pawel Osciak March 20, 2011, 11:31 p.m. UTC
  Fix vb2 not handling return value from start_streaming() callback.

Signed-off-by: Pawel Osciak <pawel@osciak.com>
---
 drivers/media/video/videobuf2-core.c |   11 ++++++++---
 1 files changed, 8 insertions(+), 3 deletions(-)
  

Comments

Marek Szyprowski March 21, 2011, 7:57 a.m. UTC | #1
Hello,

On Monday, March 21, 2011 12:31 AM Pawel Osciak wrote:

> Fix vb2 not handling return value from start_streaming() callback.
> 
> Signed-off-by: Pawel Osciak <pawel@osciak.com>

Acked-by: Marek Szyprowski <m.szyprowski@samsung.com>

> ---
>  drivers/media/video/videobuf2-core.c |   11 ++++++++---
>  1 files changed, 8 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/media/video/videobuf2-core.c b/drivers/media/video/videobuf2-core.c
> index 8c6f04b..6698c77 100644
> --- a/drivers/media/video/videobuf2-core.c
> +++ b/drivers/media/video/videobuf2-core.c
> @@ -1111,6 +1111,7 @@ EXPORT_SYMBOL_GPL(vb2_dqbuf);
>  int vb2_streamon(struct vb2_queue *q, enum v4l2_buf_type type)
>  {
>  	struct vb2_buffer *vb;
> +	int ret;
> 
>  	if (q->fileio) {
>  		dprintk(1, "streamon: file io in progress\n");
> @@ -1138,12 +1139,16 @@ int vb2_streamon(struct vb2_queue *q, enum v4l2_buf_type type)
>  		}
>  	}
> 
> -	q->streaming = 1;
> -
>  	/*
>  	 * Let driver notice that streaming state has been enabled.
>  	 */
> -	call_qop(q, start_streaming, q);
> +	ret = call_qop(q, start_streaming, q);
> +	if (ret) {
> +		dprintk(1, "streamon: driver refused to start streaming\n");
> +		return ret;
> +	}
> +
> +	q->streaming = 1;
> 
>  	/*
>  	 * If any buffers were queued before streamon,
> --
> 1.7.4.1

Best regards
--
Marek Szyprowski
Samsung Poland R&D Center


--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
  

Patch

diff --git a/drivers/media/video/videobuf2-core.c b/drivers/media/video/videobuf2-core.c
index 8c6f04b..6698c77 100644
--- a/drivers/media/video/videobuf2-core.c
+++ b/drivers/media/video/videobuf2-core.c
@@ -1111,6 +1111,7 @@  EXPORT_SYMBOL_GPL(vb2_dqbuf);
 int vb2_streamon(struct vb2_queue *q, enum v4l2_buf_type type)
 {
 	struct vb2_buffer *vb;
+	int ret;
 
 	if (q->fileio) {
 		dprintk(1, "streamon: file io in progress\n");
@@ -1138,12 +1139,16 @@  int vb2_streamon(struct vb2_queue *q, enum v4l2_buf_type type)
 		}
 	}
 
-	q->streaming = 1;
-
 	/*
 	 * Let driver notice that streaming state has been enabled.
 	 */
-	call_qop(q, start_streaming, q);
+	ret = call_qop(q, start_streaming, q);
+	if (ret) {
+		dprintk(1, "streamon: driver refused to start streaming\n");
+		return ret;
+	}
+
+	q->streaming = 1;
 
 	/*
 	 * If any buffers were queued before streamon,