[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