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>
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)) {
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 */