greybus: camera: Initialize mutex before using it
authorViresh Kumar <viresh.kumar@linaro.org>
Mon, 13 Jun 2016 09:38:01 +0000 (15:08 +0530)
committerGreg Kroah-Hartman <gregkh@google.com>
Mon, 13 Jun 2016 18:10:09 +0000 (11:10 -0700)
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>
drivers/staging/greybus/camera.c

index ca1f498..0d20c6b 100644 (file)
@@ -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.