When an error occurs in the device_add() call for a connection, the
device reference is dropped as required.  Because that's the device's
only reference, that will also lead to gb_connection_release() being
called, which frees the connection structure.
Right now we're then making an extra request to free the connection,
which is wrong.  Fix that.
Signed-off-by: Alex Elder <elder@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
                gb_connection_hd_cport_id_free(connection);
                gb_protocol_put(connection->protocol);
                put_device(&connection->dev);
-               kfree(connection);
+
                return NULL;
        }