From: Dominik Brodowski <linux@dominikbrodowski.net>

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 <linux@dominikbrodowski.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
---

 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;
 }
_