diff mbox

[media] mem2mem_testdev: unlock and return error code properly

Message ID 20120814065856.GC4791@elgon.mountain (mailing list archive)
State New, archived
Headers show

Commit Message

Dan Carpenter Aug. 14, 2012, 6:58 a.m. UTC
We recently added locking to this function, but there was an error path
which accidentally returned holding a lock.  Also we returned zero on
failure on some paths instead of the error code.

Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
---
Applies to linux-next.

--
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

Comments

Marek Szyprowski Aug. 17, 2012, 7:34 a.m. UTC | #1
Hi Dan,

On Tuesday, August 14, 2012 8:59 AM Dan Carpenter wrote:

> We recently added locking to this function, but there was an error path
> which accidentally returned holding a lock.  Also we returned zero on
> failure on some paths instead of the error code.
> 
> Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>

Thanks for the patch!

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

> ---
> Applies to linux-next.
> 
> diff --git a/drivers/media/video/mem2mem_testdev.c b/drivers/media/video/mem2mem_testdev.c
> index 0aa8c47..0b496f3 100644
> --- a/drivers/media/video/mem2mem_testdev.c
> +++ b/drivers/media/video/mem2mem_testdev.c
> @@ -911,10 +911,9 @@ static int m2mtest_open(struct file *file)
>  	v4l2_ctrl_new_custom(hdl, &m2mtest_ctrl_trans_time_msec, NULL);
>  	v4l2_ctrl_new_custom(hdl, &m2mtest_ctrl_trans_num_bufs, NULL);
>  	if (hdl->error) {
> -		int err = hdl->error;
> -
> +		rc = hdl->error;
>  		v4l2_ctrl_handler_free(hdl);
> -		return err;
> +		goto open_unlock;
>  	}
>  	ctx->fh.ctrl_handler = hdl;
>  	v4l2_ctrl_handler_setup(hdl);
> @@ -946,7 +945,7 @@ static int m2mtest_open(struct file *file)
> 
>  open_unlock:
>  	mutex_unlock(&dev->dev_mutex);
> -	return 0;
> +	return rc;
>  }
> 
>  static int m2mtest_release(struct file *file)


Best regards
diff mbox

Patch

diff --git a/drivers/media/video/mem2mem_testdev.c b/drivers/media/video/mem2mem_testdev.c
index 0aa8c47..0b496f3 100644
--- a/drivers/media/video/mem2mem_testdev.c
+++ b/drivers/media/video/mem2mem_testdev.c
@@ -911,10 +911,9 @@  static int m2mtest_open(struct file *file)
 	v4l2_ctrl_new_custom(hdl, &m2mtest_ctrl_trans_time_msec, NULL);
 	v4l2_ctrl_new_custom(hdl, &m2mtest_ctrl_trans_num_bufs, NULL);
 	if (hdl->error) {
-		int err = hdl->error;
-
+		rc = hdl->error;
 		v4l2_ctrl_handler_free(hdl);
-		return err;
+		goto open_unlock;
 	}
 	ctx->fh.ctrl_handler = hdl;
 	v4l2_ctrl_handler_setup(hdl);
@@ -946,7 +945,7 @@  static int m2mtest_open(struct file *file)
 
 open_unlock:
 	mutex_unlock(&dev->dev_mutex);
-	return 0;
+	return rc;
 }
 
 static int m2mtest_release(struct file *file)