greybus: connection: destroy connection on failing to bind it
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>
This commit is contained in:
Родитель
82ee1e6cde
Коммит
67b81757da
|
@ -239,7 +239,14 @@ gb_connection_create_range(struct greybus_host_device *hd,
|
|||
|
||||
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);
|
||||
|
|
Загрузка…
Ссылка в новой задаче