From: Viresh Kumar <viresh.kumar@linaro.org>
Date: Mon, 13 Jun 2016 09:38:01 +0000 (+0530)
Subject: greybus: camera: Initialize mutex before using it
X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=d9e4c4ee12e490aca06a0a70d534c60648e2f43a;p=linux.git

greybus: camera: Initialize mutex before using it

We are using the mutex from gb_camera_cleanup(), which can get called
even before the mutex is initialized.

Fix it by initializing the mutex early enough.

Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
Reviewed-by: Laurent Pinchart <laurent.pinchart@linaro.org>
Reviewed-by: Vaibhav Hiremath <vaibhav.hiremath@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
---

diff --git a/drivers/staging/greybus/camera.c b/drivers/staging/greybus/camera.c
index ca1f4989197f8..0d20c6b8b0154 100644
--- a/drivers/staging/greybus/camera.c
+++ b/drivers/staging/greybus/camera.c
@@ -999,6 +999,7 @@ static int gb_camera_probe(struct gb_bundle *bundle,
 		return -ENOMEM;
 
 	gcam->bundle = bundle;
+	mutex_init(&gcam->mutex);
 
 	conn = gb_connection_create(bundle, mgmt_cport_id,
 				    gb_camera_request_handler);
@@ -1014,8 +1015,6 @@ static int gb_camera_probe(struct gb_bundle *bundle,
 	if (ret)
 		goto error;
 
-	mutex_init(&gcam->mutex);
-
 	/*
 	 * Create the data connection between the camera module data CPort and
 	 * APB CDSI1. The CDSI1 CPort ID is hardcoded by the ES2 bridge.