diff options
Diffstat (limited to 'drivers/pcmcia/pxa2xx_base.c')
| -rw-r--r-- | drivers/pcmcia/pxa2xx_base.c | 12 | 
1 files changed, 3 insertions, 9 deletions
diff --git a/drivers/pcmcia/pxa2xx_base.c b/drivers/pcmcia/pxa2xx_base.c index a87e2728b2c3..64d433ec4fc6 100644 --- a/drivers/pcmcia/pxa2xx_base.c +++ b/drivers/pcmcia/pxa2xx_base.c  | |||
| @@ -328,21 +328,15 @@ static int pxa2xx_drv_pcmcia_probe(struct platform_device *dev) | |||
| 328 | goto err1; | 328 | goto err1; | 
| 329 | } | 329 | } | 
| 330 | 330 | ||
| 331 | if (ret) { | 331 | pxa2xx_configure_sockets(&dev->dev); | 
| 332 | while (--i >= 0) | 332 | dev_set_drvdata(&dev->dev, sinfo); | 
| 333 | soc_pcmcia_remove_one(&sinfo->skt[i]); | ||
| 334 | kfree(sinfo); | ||
| 335 | clk_put(clk); | ||
| 336 | } else { | ||
| 337 | pxa2xx_configure_sockets(&dev->dev); | ||
| 338 | dev_set_drvdata(&dev->dev, sinfo); | ||
| 339 | } | ||
| 340 | 333 | ||
| 341 | return 0; | 334 | return 0; | 
| 342 | 335 | ||
| 343 | err1: | 336 | err1: | 
| 344 | while (--i >= 0) | 337 | while (--i >= 0) | 
| 345 | soc_pcmcia_remove_one(&sinfo->skt[i]); | 338 | soc_pcmcia_remove_one(&sinfo->skt[i]); | 
| 339 | clk_put(clk); | ||
| 346 | kfree(sinfo); | 340 | kfree(sinfo); | 
| 347 | err0: | 341 | err0: | 
| 348 | return ret; | 342 | return ret; | 
