[patch 9/21] pcmcia: remove dev_info from client
Dominik Brodowski
linux at dominikbrodowski.de
Fri Dec 17 05:07:34 EST 2004
Remove the dev_info - contained name from struct client_t
Signed-off-by: Dominik Brodowski <linux at brodo.de>
---
drivers/pcmcia/cs.c | 3 ++-
drivers/pcmcia/ds.c | 27 ++++++++++++++++++---------
include/pcmcia/ds.h | 1 -
3 files changed, 20 insertions(+), 11 deletions(-)
Index: 2.6.10-rc3/drivers/pcmcia/cs.c
===================================================================
--- 2.6.10-rc3.orig/drivers/pcmcia/cs.c 2004-12-13 16:04:29.636396361 +0100
+++ 2.6.10-rc3/drivers/pcmcia/cs.c 2004-12-13 16:04:31.414148905 +0100
@@ -1530,6 +1530,7 @@
struct pcmcia_socket *s;
config_t *c;
int ret = CS_IN_USE, irq = 0;
+ struct pcmcia_device *p_dev = handle_to_pdev(handle);
if (CHECK_HANDLE(handle))
return CS_BAD_HANDLE;
@@ -1579,7 +1580,7 @@
((req->Attributes & IRQ_TYPE_DYNAMIC_SHARING) ||
(s->functions > 1) ||
(irq == s->pci_irq)) ? SA_SHIRQ : 0,
- handle->dev_info, req->Instance))
+ p_dev->dev.bus_id, req->Instance))
return CS_IN_USE;
}
Index: 2.6.10-rc3/drivers/pcmcia/ds.c
===================================================================
--- 2.6.10-rc3.orig/drivers/pcmcia/ds.c 2004-12-13 16:04:26.436841726 +0100
+++ 2.6.10-rc3/drivers/pcmcia/ds.c 2004-12-13 16:04:31.417148488 +0100
@@ -221,8 +221,10 @@
if (CHECK_HANDLE(handle))
printk(KERN_NOTICE);
- else
- printk(KERN_NOTICE "%s: ", handle->dev_info);
+ else {
+ struct pcmcia_device *p_dev = handle_to_pdev(handle);
+ printk(KERN_NOTICE "%s: ", p_dev->dev.bus_id);
+ }
for (i = 0; i < ARRAY_SIZE(service_table); i++)
if (service_table[i].key == err->func)
@@ -608,7 +610,6 @@
p_dev->client.Socket = s->parent;
p_dev->client.Function = bind_info->function;
p_dev->client.state = CLIENT_UNBOUND;
- strlcpy(p_dev->client.dev_info, p_drv->drv.name, DEV_NAME_LEN);
ret = device_register(&p_dev->dev);
if (ret) {
@@ -683,14 +684,22 @@
continue;
spin_lock_irqsave(&pcmcia_dev_list_lock, flags);
list_for_each_entry(p_dev, &skt->devices_list, socket_device_list) {
- if ((p_dev->client.state & CLIENT_UNBOUND) &&
- (!strcmp(p_dev->client.dev_info, (char *)req->dev_info))) {
- p_dev = pcmcia_get_dev(p_dev);
- if (p_dev)
- client = &p_dev->client;
+ struct pcmcia_driver *p_drv;
+ p_dev = pcmcia_get_dev(p_dev);
+ if (!p_dev)
+ continue;
+ if ((!p_dev->client.state & CLIENT_UNBOUND) ||
+ (!p_dev->dev.driver)) {
+ pcmcia_put_dev(p_dev);
+ continue;
+ }
+ p_drv = to_pcmcia_drv(p_dev->dev.driver);
+ if (!strncmp(p_drv->drv.name, (char *)req->dev_info, DEV_NAME_LEN)) {
+ client = &p_dev->client;
spin_unlock_irqrestore(&pcmcia_dev_list_lock, flags);
goto found;
}
+ pcmcia_put_dev(p_dev);
}
spin_unlock_irqrestore(&pcmcia_dev_list_lock, flags);
pcmcia_put_bus_socket(skt);
@@ -733,7 +742,7 @@
}
ds_dbg(1, "register_client(): client 0x%p, dev %s\n",
- client, client->dev_info);
+ client, p_dev->dev.bus_id);
if (client->EventMask & CS_EVENT_REGISTRATION_COMPLETE)
EVENT(client, CS_EVENT_REGISTRATION_COMPLETE, CS_EVENT_PRI_LOW);
Index: 2.6.10-rc3/include/pcmcia/ds.h
===================================================================
--- 2.6.10-rc3.orig/include/pcmcia/ds.h 2004-12-13 16:04:26.482835324 +0100
+++ 2.6.10-rc3/include/pcmcia/ds.h 2004-12-13 16:04:31.417148488 +0100
@@ -162,7 +162,6 @@
u_short client_magic;
struct pcmcia_socket *Socket;
u_char Function;
- dev_info_t dev_info;
u_int state;
event_t EventMask;
int (*event_handler) (event_t event, int priority,
More information about the linux-pcmcia
mailing list