diff options
Diffstat (limited to 'drivers/usb/misc/usb3503.c')
-rw-r--r-- | drivers/usb/misc/usb3503.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/drivers/usb/misc/usb3503.c b/drivers/usb/misc/usb3503.c index c3770734da42..dc2c993ea189 100644 --- a/drivers/usb/misc/usb3503.c +++ b/drivers/usb/misc/usb3503.c @@ -182,12 +182,12 @@ static int usb3503_probe(struct i2c_client *i2c, const struct i2c_device_id *id) { struct usb3503_platform_data *pdata = i2c->dev.platform_data; struct usb3503 *hub; - int err; + int err = -ENOMEM; hub = kzalloc(sizeof(struct usb3503), GFP_KERNEL); if (!hub) { dev_err(&i2c->dev, "private data alloc fail\n"); - return -ENOMEM; + return err; } i2c_set_clientdata(i2c, hub); @@ -195,6 +195,7 @@ static int usb3503_probe(struct i2c_client *i2c, const struct i2c_device_id *id) if (!pdata) { dev_dbg(&i2c->dev, "missing platform data\n"); + goto err_out; } else { hub->gpio_intn = pdata->gpio_intn; hub->gpio_connect = pdata->gpio_connect; @@ -209,7 +210,7 @@ static int usb3503_probe(struct i2c_client *i2c, const struct i2c_device_id *id) dev_err(&i2c->dev, "unable to request GPIO %d as connect pin (%d)\n", hub->gpio_intn, err); - goto err_gpio_intn; + goto err_out; } } @@ -248,7 +249,7 @@ err_gpio_reset: err_gpio_connect: if (gpio_is_valid(hub->gpio_intn)) gpio_free(hub->gpio_intn); -err_gpio_intn: +err_out: kfree(hub); return err; |