s3c-hsudc: reorder error handling in start function

A patch from »s3c-hsudc: Add regulator handling« in state Mainline for linux-kernel

From: Heiko Stuebner <heiko.stuebner@...> Date: Tue, 29 Nov 2011 15:16:39 +0100

Commit-Message

This removes duplicate code and makes room for more error handling steps. Signed-off-by: Heiko Stuebner <heiko@...>

Patch-Comment

drivers/usb/gadget/s3c-hsudc.c | 22 ++++++++++------------ 1 files changed, 10 insertions(+), 12 deletions(-)

Statistics

  • 10 lines added
  • 12 lines removed

Changes

------------------------ drivers/usb/gadget/s3c-hsudc.c ------------------------
index 787ac5b..74be824 100644
@@ -1165,11 +1165,7 @@ static int s3c_hsudc_start(struct usb_gadget_driver *driver,
ret = bind(&hsudc->gadget);
if (ret) {
dev_err(hsudc->dev, "%s: bind failed\n", hsudc->gadget.name);
- device_del(&hsudc->gadget.dev);
-
- hsudc->driver = NULL;
- hsudc->gadget.dev.driver = NULL;
- return ret;
+ goto err_bind;
}
/* connect to bus through transceiver */
@@ -1178,13 +1174,7 @@ static int s3c_hsudc_start(struct usb_gadget_driver *driver,
if (ret) {
dev_err(hsudc->dev, "%s: can't bind to transceiver\n",
hsudc->gadget.name);
- driver->unbind(&hsudc->gadget);
-
- device_del(&hsudc->gadget.dev);
-
- hsudc->driver = NULL;
- hsudc->gadget.dev.driver = NULL;
- return ret;
+ goto err_otg;
}
}
@@ -1197,6 +1187,14 @@ static int s3c_hsudc_start(struct usb_gadget_driver *driver,
hsudc->pd->gpio_init();
return 0;
+err_otg:
+ driver->unbind(&hsudc->gadget);
+err_bind:
+ device_del(&hsudc->gadget.dev);
+
+ hsudc->driver = NULL;
+ hsudc->gadget.dev.driver = NULL;
+ return ret;
}
static int s3c_hsudc_stop(struct usb_gadget_driver *driver)
 
 

Recent Patches

About Us

Sed lacus. Donec lectus. Nullam pretium nibh ut turpis. Nam bibendum. In nulla tortor, elementum vel, tempor at, varius non, purus. Mauris vitae nisl nec metus placerat consectetuer.

Read More...