If pxa2xx_drv_pcmcia_add_one fails, it will go to err1 error path.
Add a missing clk_put in the error path.
Checking the ret value after the for loop is redundant, it is always false.
Thus remove the redundant checking.
Signed-off-by: Axel Lin <[email protected]>
Acked-by: Eric Miao <[email protected]>
Acked-by: Marek Vasut <[email protected]>
Signed-off-by: Dominik Brodowski <[email protected]>
goto err1;
}
- if (ret) {
- while (--i >= 0)
- soc_pcmcia_remove_one(&sinfo->skt[i]);
- kfree(sinfo);
- clk_put(clk);
- } else {
- pxa2xx_configure_sockets(&dev->dev);
- dev_set_drvdata(&dev->dev, sinfo);
- }
+ pxa2xx_configure_sockets(&dev->dev);
+ dev_set_drvdata(&dev->dev, sinfo);
return 0;
err1:
while (--i >= 0)
soc_pcmcia_remove_one(&sinfo->skt[i]);
+ clk_put(clk);
kfree(sinfo);
err0:
return ret;