Re: Another PCMCIA regression

From: Dominik Brodowski
Date: Sat Jun 19 2010 - 08:37:09 EST


Mikulas,

many thanks for tracking down this issue. Does the following patch
(instead of the one you provided) help, too?

Thanks & best,
Dominik


From: Dominik Brodowski <linux@xxxxxxxxxxxxxxxxxxxx>
Date: Sat, 19 Jun 2010 14:33:56 +0200
Subject: [PATCH] pcmcia: do not initialize the present flag too late.

The "present" flag was initialized too late -- possibly, a card
was already registered at this time, so re-setting the flag to 0
caused pcmcia_dev_present() to fail.

Reported-by: Mikulas Patocka <mpatocka@xxxxxxxxxx>
Signed-off-by: Dominik Brodowski <linux@xxxxxxxxxxxxxxxxxxxx>

diff --git a/drivers/pcmcia/ds.c b/drivers/pcmcia/ds.c
index 9fc3398..eac9614 100644
--- a/drivers/pcmcia/ds.c
+++ b/drivers/pcmcia/ds.c
@@ -1356,6 +1356,7 @@ static int __devinit pcmcia_bus_add_socket(struct device *dev,
INIT_LIST_HEAD(&socket->devices_list);
memset(&socket->pcmcia_state, 0, sizeof(u8));
socket->device_count = 0;
+ atomic_set(&socket->present, 0);

ret = pccard_register_pcmcia(socket, &pcmcia_bus_callback);
if (ret) {
@@ -1364,8 +1365,6 @@ static int __devinit pcmcia_bus_add_socket(struct device *dev,
return ret;
}

- atomic_set(&socket->present, 0);
-
return 0;
}

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/