From: Dominik Brodowski Always rescan the devices upon echo'ing something to available_resources_setup_done. This is needed for proper "coldplug" support. Signed-off-by: Dominik Brodowski Signed-off-by: Andrew Morton --- 25-akpm/drivers/pcmcia/socket_sysfs.c | 25 ++++++++++--------------- 1 files changed, 10 insertions(+), 15 deletions(-) diff -puN drivers/pcmcia/socket_sysfs.c~pcmcia-rescan-bus-always-upon-echoing-into-setup_done drivers/pcmcia/socket_sysfs.c --- 25/drivers/pcmcia/socket_sysfs.c~pcmcia-rescan-bus-always-upon-echoing-into-setup_done 2005-02-28 15:21:09.000000000 -0800 +++ 25-akpm/drivers/pcmcia/socket_sysfs.c 2005-02-28 15:21:09.000000000 -0800 @@ -163,24 +163,19 @@ static ssize_t pccard_store_resource(str return -EINVAL; spin_lock_irqsave(&s->lock, flags); - if (!s->resource_setup_done) { - s->resource_setup_done = 1; - spin_unlock_irqrestore(&s->lock, flags); + s->resource_setup_done = 1; + spin_unlock_irqrestore(&s->lock, flags); - down(&s->skt_sem); - if ((s->callback) && - (s->state & SOCKET_PRESENT) && - !(s->state & SOCKET_CARDBUS)) { - if (try_module_get(s->callback->owner)) { - s->callback->resources_done(s); - module_put(s->callback->owner); - } + down(&s->skt_sem); + if ((s->callback) && + (s->state & SOCKET_PRESENT) && + !(s->state & SOCKET_CARDBUS)) { + if (try_module_get(s->callback->owner)) { + s->callback->resources_done(s); + module_put(s->callback->owner); } - up(&s->skt_sem); - - return count; } - spin_unlock_irqrestore(&s->lock, flags); + up(&s->skt_sem); return count; } _