]> git.proxmox.com Git - mirror_ubuntu-zesty-kernel.git/commitdiff
greybus: light: Initialize mutex before using it
authorViresh Kumar <viresh.kumar@linaro.org>
Wed, 29 Jun 2016 20:42:26 +0000 (13:42 -0700)
committerGreg Kroah-Hartman <gregkh@google.com>
Wed, 29 Jun 2016 23:37:17 +0000 (16:37 -0700)
Light protocol driver is suffering from the same issue that was fixed in
camera driver earlier (commit a7c3b0c3c8da).

Big cleanup function is used instead of fine grained control in the
error path, and in one of the cases the mutex was found uninitialized
and so the oops seen in SW-6752.

Initialize the mutex before any code can access it.

Compile tested only.

Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
Reviewed-by: Rui Miguel Silva <rui.silva@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
drivers/staging/greybus/light.c

index 78fb8a9f6a4826f4b438f5697a1702e451fae4a2..3d42a5dafee99c7acd4e0d64c4f9d16f894f7f64 100644 (file)
@@ -1221,6 +1221,8 @@ static int gb_lights_probe(struct gb_bundle *bundle,
        if (!glights)
                return -ENOMEM;
 
+       mutex_init(&glights->lights_lock);
+
        connection = gb_connection_create(bundle, le16_to_cpu(cport_desc->id),
                                          gb_lights_request_handler);
        if (IS_ERR(connection)) {
@@ -1231,8 +1233,6 @@ static int gb_lights_probe(struct gb_bundle *bundle,
        glights->connection = connection;
        gb_connection_set_data(connection, glights);
 
-       mutex_init(&glights->lights_lock);
-
        greybus_set_drvdata(bundle, glights);
 
        /* We aren't ready to receive an incoming request yet */