]> err.no Git - linux-2.6/blobdiff - drivers/pcmcia/pcmcia_ioctl.c
[PATCH] Make the bzImage format self-terminating
[linux-2.6] / drivers / pcmcia / pcmcia_ioctl.c
index 7aa2e7f20d5059199563339e03ac2f54c3444d31..39ba6406fd54ef8b9a398eafb3c425a6706837f5 100644 (file)
@@ -31,7 +31,6 @@
 #include <linux/workqueue.h>
 
 #define IN_CARD_SERVICES
-#include <pcmcia/version.h>
 #include <pcmcia/cs_types.h>
 #include <pcmcia/cs.h>
 #include <pcmcia/cistpl.h>
@@ -275,8 +274,16 @@ rescan:
        return (ret);
 } /* bind_request */
 
+#ifdef CONFIG_CARDBUS
 
-extern struct pci_bus *pcmcia_lookup_bus(struct pcmcia_socket *s);
+static struct pci_bus *pcmcia_lookup_bus(struct pcmcia_socket *s)
+{
+       if (!s || !(s->state & SOCKET_CARDBUS))
+               return NULL;
+
+       return s->cb_dev->subordinate;
+}
+#endif
 
 static int get_device_info(struct pcmcia_socket *s, bind_info_t *bind_info, int first)
 {
@@ -560,9 +567,6 @@ static int ds_ioctl(struct inode * inode, struct file * file,
     case DS_ADJUST_RESOURCE_INFO:
        ret = pcmcia_adjust_resource_info(&buf->adjust);
        break;
-    case DS_GET_CARD_SERVICES_INFO:
-       ret = pcmcia_get_card_services_info(&buf->servinfo);
-       break;
     case DS_GET_CONFIGURATION_INFO:
        if (buf->config.Function &&
           (buf->config.Function >= s->functions))
@@ -729,9 +733,9 @@ void __init pcmcia_setup_ioctl(void) {
 
        /* Set up character device for user mode clients */
        i = register_chrdev(0, "pcmcia", &ds_fops);
-       if (i == -EBUSY)
+       if (i < 0)
                printk(KERN_NOTICE "unable to find a free device # for "
-                      "Driver Services\n");
+                      "Driver Services (error=%d)\n", i);
        else
                major_dev = i;