wl12xx: fix error handling in wl12xx_probe()
Resources were not freed properly in some cases. Signed-off-by: Kalle Valo <kalle.valo@nokia.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
committed by
John W. Linville
parent
1d3b813061
commit
c4f5c85218
@@ -1274,13 +1274,15 @@ static int __devinit wl12xx_probe(struct spi_device *spi)
|
|||||||
wl->set_power = pdata->set_power;
|
wl->set_power = pdata->set_power;
|
||||||
if (!wl->set_power) {
|
if (!wl->set_power) {
|
||||||
wl12xx_error("set power function missing in platform data");
|
wl12xx_error("set power function missing in platform data");
|
||||||
return -ENODEV;
|
ret = -ENODEV;
|
||||||
|
goto out_free;
|
||||||
}
|
}
|
||||||
|
|
||||||
wl->irq = spi->irq;
|
wl->irq = spi->irq;
|
||||||
if (wl->irq < 0) {
|
if (wl->irq < 0) {
|
||||||
wl12xx_error("irq missing in platform data");
|
wl12xx_error("irq missing in platform data");
|
||||||
return -ENODEV;
|
ret = -ENODEV;
|
||||||
|
goto out_free;
|
||||||
}
|
}
|
||||||
|
|
||||||
ret = request_irq(wl->irq, wl12xx_irq, 0, DRIVER_NAME, wl);
|
ret = request_irq(wl->irq, wl12xx_irq, 0, DRIVER_NAME, wl);
|
||||||
|
Reference in New Issue
Block a user