drivers/pcmcia/electra_cf.c: add missing iounmap and kfree

cf and cf->mem_base have been allocated at the point of this failure, so
they should be freed before leaving the function.

[linux@dominikbrodowski.net: limit call to device_init_wakeup() to the
same error paths as before]
Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr>
Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
This commit is contained in:
Julia Lawall 2012-04-18 16:02:02 +02:00 committed by Dominik Brodowski
parent e632cd9472
commit 801421eb73

View File

@ -216,8 +216,10 @@ static int electra_cf_probe(struct platform_device *ofdev)
cf->io_size = PAGE_ALIGN(resource_size(&io));
area = __get_vm_area(cf->io_size, 0, PHB_IO_BASE, PHB_IO_END);
if (area == NULL)
return -ENOMEM;
if (area == NULL) {
status = -ENOMEM;
goto fail1;
}
cf->io_virt = (void __iomem *)(area->addr);
@ -320,7 +322,8 @@ fail1:
iounmap(cf->mem_base);
if (cf->gpio_base)
iounmap(cf->gpio_base);
device_init_wakeup(&ofdev->dev, 0);
if (area)
device_init_wakeup(&ofdev->dev, 0);
kfree(cf);
return status;