X-Git-Url: https://git.kernel.dk/?a=blobdiff_plain;f=drivers%2Fpcmcia%2Fsoc_common.c;h=da3972153226a019c424ae98972ae8796e274f89;hb=bde40fe071e327857b478a440c599f54d4fc14dd;hp=8c21446996f2190632d59d55b2c173dad6e0273e;hpb=f934fb19ef34730263e6afc01e8ec27a8a71470f;p=linux-2.6-block.git diff --git a/drivers/pcmcia/soc_common.c b/drivers/pcmcia/soc_common.c index 8c21446996f2..da3972153226 100644 --- a/drivers/pcmcia/soc_common.c +++ b/drivers/pcmcia/soc_common.c @@ -43,7 +43,7 @@ #include #include -#include +#include #include #include @@ -51,7 +51,7 @@ /* FIXME: platform dependent resource declaration has to move out of this file */ #ifdef CONFIG_ARCH_PXA -#include +#include #endif #ifdef DEBUG @@ -748,7 +748,9 @@ int soc_common_drv_pcmcia_probe(struct device *dev, struct pcmcia_low_level *ops add_timer(&skt->poll_timer); - device_create_file(&skt->socket.dev, &dev_attr_status); + ret = device_create_file(&skt->socket.dev, &dev_attr_status); + if (ret) + goto out_err_8; } dev_set_drvdata(dev, sinfo); @@ -758,6 +760,8 @@ int soc_common_drv_pcmcia_probe(struct device *dev, struct pcmcia_low_level *ops do { skt = &sinfo->skt[i]; + device_remove_file(&skt->socket.dev, &dev_attr_status); + out_err_8: del_timer_sync(&skt->poll_timer); pcmcia_unregister_socket(&skt->socket);