OSDN Git Service

USB: misc: fixup smatch WARNING
authorDongjin Kim <tobetter@gmail.com>
Sat, 12 Jan 2013 11:54:33 +0000 (20:54 +0900)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 17 Jan 2013 18:21:15 +0000 (10:21 -0800)
This patch fixes the warning,

6a099c63650e50ebf7d1259b859a3d230aec4207 [4/10] USB: misc: Add USB3503 High-Speed Hub Controller

drivers/usb/misc/usb3503.c:238 usb3503_probe() error: we previously assumed 'pdata' could be null (see line 196)

Signed-off-by: Dongjin Kim <tobetter@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/misc/usb3503.c

index c377073..dc2c993 100644 (file)
@@ -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;