From 984c9d38ae370993f28b36c8be9923b1de39f5e7 Mon Sep 17 00:00:00 2001 From: Johan Hovold Date: Tue, 29 Mar 2016 18:56:05 -0400 Subject: [PATCH] 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 Signed-off-by: Greg Kroah-Hartman --- drivers/staging/greybus/svc.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/drivers/staging/greybus/svc.c b/drivers/staging/greybus/svc.c index 5c517d7e65f0..96d3d55f54ed 100644 --- a/drivers/staging/greybus/svc.c +++ b/drivers/staging/greybus/svc.c @@ -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); } -- 2.20.1