greybus: interface: deactivate interface on enumeration failure

Deactivate an interface immediately on enumeration failure.

Note that an interface is always registered.

Signed-off-by: Johan Hovold <johan@hovoldconsulting.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
This commit is contained in:
Johan Hovold
2016-03-29 18:56:05 -04:00
committed by Greg Kroah-Hartman
parent 4d5f621888
commit 984c9d38ae

View File

@@ -484,17 +484,23 @@ static void gb_svc_process_intf_hotplug(struct gb_operation *operation)
if (ret) {
dev_err(&svc->dev, "failed to activate interface %u: %d\n",
intf_id, ret);
goto out_interface_add;
goto err_interface_add;
}
ret = gb_interface_enable(intf);
if (ret) {
dev_err(&svc->dev, "failed to enable interface %u: %d\n",
intf_id, ret);
goto out_interface_add;
goto err_interface_deactivate;
}
out_interface_add:
gb_interface_add(intf);
return;
err_interface_deactivate:
gb_interface_deactivate(intf);
err_interface_add:
gb_interface_add(intf);
}