greybus: camera: destroy data connection on link-config errors
authorJohan Hovold <johan@hovoldconsulting.com>
Wed, 30 Dec 2015 10:23:51 +0000 (11:23 +0100)
committerGreg Kroah-Hartman <gregkh@google.com>
Wed, 30 Dec 2015 21:16:06 +0000 (13:16 -0800)
Make sure to tear down the data connection also on failure to configure
the link by setting the data_connected flag immediately after creating
the connection.

Signed-off-by: Johan Hovold <johan@hovoldconsulting.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
drivers/staging/greybus/camera.c

index ec7d4a082ab18f1b8fb3bd1f7cbe1002bbd98b5a..b181ac49e783cdc1aae9d4d0a5faf7fb4bd89f9b 100644 (file)
@@ -604,6 +604,8 @@ static int gb_camera_connection_init(struct gb_connection *connection)
        if (ret < 0)
                goto error;
 
+       gcam->data_connected = true;
+
        ret = gb_svc_link_config(svc, connection->intf->interface_id,
                                 GB_SVC_LINK_CONFIG_BURST_HS_A, 2, 2, 0);
        if (ret < 0)
@@ -614,8 +616,6 @@ static int gb_camera_connection_init(struct gb_connection *connection)
        if (ret < 0)
                goto error;
 
-       gcam->data_connected = true;
-
        ret = gb_camera_debugfs_init(gcam);
        if (ret < 0)
                goto error;