static int sa11x0_drv_pcmcia_remove(struct platform_device *dev) { struct skt_dev_info *sinfo = platform_get_drvdata(dev); int i; platform_set_drvdata(dev, NULL); for (i = 0; i < sinfo->nskt; i++) soc_pcmcia_remove_one(&sinfo->skt[i]); kfree(sinfo); return 0; }
static int pcmcia_remove(struct sa1111_dev *dev) { struct sa1111_pcmcia_socket *next, *s = dev_get_drvdata(&dev->dev); dev_set_drvdata(&dev->dev, NULL); for (; s; s = next) { next = s->next; soc_pcmcia_remove_one(&s->soc); kfree(s); } release_mem_region(dev->res.start, 512); sa1111_disable_device(dev); return 0; }