Merge git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6
[powerpc.git] / drivers / char / pcmcia / cm4000_cs.c
index 16e105d..128b263 100644 (file)
@@ -1458,7 +1458,7 @@ static int cmm_ioctl(struct inode *inode, struct file *filp, unsigned int cmd,
               iminor(inode), ioctl_names[_IOC_NR(cmd)]);
 
        link = dev_table[iminor(inode)];
-       if (!(DEV_OK(link))) {
+       if (!pcmcia_dev_present(link)) {
                DEBUGP(4, dev, "DEV_OK false\n");
                return -ENODEV;
        }
@@ -1667,7 +1667,7 @@ static int cmm_open(struct inode *inode, struct file *filp)
                return -ENODEV;
 
        link = dev_table[minor];
-       if (link == NULL || !(DEV_OK(link)))
+       if (link == NULL || !pcmcia_dev_present(link))
                return -ENODEV;
 
        if (link->open)
@@ -1981,10 +1981,6 @@ static int __init cmm_init(void)
        if (!cmm_class)
                return -1;
 
-       rc = pcmcia_register_driver(&cm4000_driver);
-       if (rc < 0)
-               return rc;
-
        major = register_chrdev(0, DEVICE_NAME, &cm4000_fops);
        if (major < 0) {
                printk(KERN_WARNING MODULE_NAME
@@ -1992,6 +1988,12 @@ static int __init cmm_init(void)
                return -1;
        }
 
+       rc = pcmcia_register_driver(&cm4000_driver);
+       if (rc < 0) {
+               unregister_chrdev(major, DEVICE_NAME);
+               return rc;
+       }
+
        return 0;
 }