]> git.hungrycats.org Git - linux/commitdiff
[PATCH] pcmcia: remove dev_info from client
authorDominik Brodowski <linux@dominikbrodowski.de>
Tue, 11 Jan 2005 11:27:18 +0000 (03:27 -0800)
committerLinus Torvalds <torvalds@ppc970.osdl.org>
Tue, 11 Jan 2005 11:27:18 +0000 (03:27 -0800)
Remove the dev_info - contained name from struct client_t

Signed-off-by: Dominik Brodowski <linux@brodo.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
drivers/pcmcia/cs.c
drivers/pcmcia/ds.c
include/pcmcia/ds.h

index 30b2980f0176867f9018e10386972f6d109ebdf2..4f8cf5cdd9041e8cf52b3363ae12e1f579de93f9 100644 (file)
@@ -1530,6 +1530,7 @@ int pcmcia_request_irq(client_handle_t handle, irq_req_t *req)
     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 @@ int pcmcia_request_irq(client_handle_t handle, irq_req_t *req)
                            ((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 8ab0615c786b203fc8f10ec0edb453aeaed0a996..db18d56c825f76f16210da6e7499075a3a75aad9 100644 (file)
@@ -221,8 +221,10 @@ int pcmcia_report_error(client_handle_t handle, error_info_t *err)
 
        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 @@ static int bind_request(struct pcmcia_bus_socket *s, bind_info_t *bind_info)
        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 @@ int pcmcia_register_client(client_handle_t *handle, client_reg_t *req)
                        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 @@ int pcmcia_register_client(client_handle_t *handle, client_reg_t *req)
        }
 
        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 e46ae96e867bcad59571b6cef31ddd79cf7fb3b3..1a7a03d8623ab35b53b87a414bc3e03e70044160 100644 (file)
@@ -162,7 +162,6 @@ struct pcmcia_device {
                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,