Merge to Fedora kernel-2.6.7-1.441
[linux-2.6.git] / drivers / pcmcia / i82365.c
index e98adb1..120569b 100644 (file)
@@ -1372,8 +1372,15 @@ static int __init init_i82365(void)
 {
     int i, ret;
 
-    if (driver_register(&i82365_driver))
-       return -1;
+    ret = driver_register(&i82365_driver);
+    if (ret)
+       return ret;
+
+    ret = platform_device_register(&i82365_device);
+    if (ret) {
+       driver_unregister(&i82365_driver);
+       return ret;
+    }
 
     printk(KERN_INFO "Intel ISA PCIC probe: ");
     sockets = 0;
@@ -1382,12 +1389,11 @@ static int __init init_i82365(void)
 
     if (sockets == 0) {
        printk("not found.\n");
+       platform_device_unregister(&i82365_device);
        driver_unregister(&i82365_driver);
        return -ENODEV;
     }
 
-    platform_device_register(&i82365_device);
-
     /* Set up interrupt handler(s) */
     if (grab_irq != 0)
        request_irq(cs_irq, pcic_interrupt, 0, "i82365", pcic_interrupt);