diff options
author | Sebastian Andrzej Siewior <bigeasy@linutronix.de> | 2011-06-03 19:50:47 +0200 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2011-06-06 16:28:03 -0700 |
commit | 6bc129532176fcafb4202b73b3f431986391a362 (patch) | |
tree | 4d1473e3c7dfa699074dae02a7e2e63e221f5fb0 | |
parent | a6207b17ece4ea40c378233b1ddf2a7f4288419d (diff) | |
download | op-kernel-dev-6bc129532176fcafb4202b73b3f431986391a362.zip op-kernel-dev-6bc129532176fcafb4202b73b3f431986391a362.tar.gz |
usb/s3c-hsudc: fix error path
I doubt the clock is optional. In case it is it should not return with
an error code because we leak everything.
Cc: Jingoo Han <jg1.han@samsung.com>
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-rw-r--r-- | drivers/usb/gadget/s3c-hsudc.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/usb/gadget/s3c-hsudc.c b/drivers/usb/gadget/s3c-hsudc.c index 9a1b966..d5e3e1e 100644 --- a/drivers/usb/gadget/s3c-hsudc.c +++ b/drivers/usb/gadget/s3c-hsudc.c @@ -1302,7 +1302,8 @@ static int s3c_hsudc_probe(struct platform_device *pdev) hsudc->uclk = clk_get(&pdev->dev, "usb-device"); if (IS_ERR(hsudc->uclk)) { dev_err(dev, "failed to find usb-device clock source\n"); - return PTR_ERR(hsudc->uclk); + ret = PTR_ERR(hsudc->uclk); + goto err_clk; } clk_enable(hsudc->uclk); @@ -1311,7 +1312,8 @@ static int s3c_hsudc_probe(struct platform_device *pdev) disable_irq(hsudc->irq); local_irq_enable(); return 0; - +err_clk: + free_irq(hsudc->irq, hsudc); err_irq: iounmap(hsudc->regs); |