[PATCH] pcmcia: clean up cs ds callback
authorDominik Brodowski <linux@dominikbrodowski.net>
Mon, 27 Jun 2005 23:28:49 +0000 (16:28 -0700)
committerLinus Torvalds <torvalds@ppc970.osdl.org>
Tue, 28 Jun 2005 01:03:19 +0000 (18:03 -0700)
struct pcmcia_callback isn't needed for each socket, one is enough for all
sockets.

Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
drivers/pcmcia/ds.c
drivers/pcmcia/ds_internal.h

index 80b34b65511c1a7f19b2cbc22713aa4a35bf8e6c..54068f451ee68eabeff15406dc70ca0a1f141d91 100644 (file)
@@ -1167,6 +1167,12 @@ int pcmcia_deregister_client(client_handle_t handle)
 } /* deregister_client */
 EXPORT_SYMBOL(pcmcia_deregister_client);
 
+static struct pcmcia_callback pcmcia_bus_callback = {
+       .owner = THIS_MODULE,
+       .event = ds_event,
+       .requery = pcmcia_bus_rescan,
+};
+
 static int __devinit pcmcia_bus_add_socket(struct class_device *class_dev)
 {
        struct pcmcia_socket *socket = class_get_devdata(class_dev);
@@ -1201,12 +1207,9 @@ static int __devinit pcmcia_bus_add_socket(struct class_device *class_dev)
        INIT_WORK(&s->device_add, pcmcia_delayed_add_pseudo_device, s);
 
        /* Set up hotline to Card Services */
-       s->callback.owner = THIS_MODULE;
-       s->callback.event = &ds_event;
-       s->callback.requery = &pcmcia_bus_rescan;
        socket->pcmcia = s;
 
-       ret = pccard_register_pcmcia(socket, &s->callback);
+       ret = pccard_register_pcmcia(socket, &pcmcia_bus_callback);
        if (ret) {
                printk(KERN_ERR "PCMCIA registration PCCard core failed for socket %p\n", socket);
                pcmcia_put_bus_socket(s);
@@ -1217,7 +1220,6 @@ static int __devinit pcmcia_bus_add_socket(struct class_device *class_dev)
        return 0;
 }
 
-
 static void pcmcia_bus_remove_socket(struct class_device *class_dev)
 {
        struct pcmcia_socket *socket = class_get_devdata(class_dev);
index 0de90e5e67a70ccbfd4b56ce91c4553ebcf164fb..b05bc39d9cd6aa8b1e7317dad132c0b54639dd7b 100644 (file)
@@ -5,7 +5,6 @@ struct user_info_t;
 /* Socket state information */
 struct pcmcia_bus_socket {
        struct kref             refcount;
-       struct pcmcia_callback  callback;
        int                     state;
        struct pcmcia_socket    *parent;