gb_connection_bind_protocol() returns proper error codes now and we
should destroy the connection on failures.
This change also fixes a NULL deref on hotplug when the control connection fails
to initialize.
Signed-off-by: Fabien Parent <fparent@baylibre.com>
Reviewed-by: Johan Hovold <johan@hovoldconsulting.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
spin_unlock_irq(&gb_connections_lock);
- gb_connection_bind_protocol(connection);
+ retval = gb_connection_bind_protocol(connection);
+ if (retval) {
+ dev_err(&connection->dev, "failed to bind protocol: %d\n",
+ retval);
+ gb_connection_destroy(connection);
+ return NULL;
+ }
+
if (!connection->protocol)
dev_warn(&connection->dev,
"protocol 0x%02hhx handler not found\n", protocol_id);