Merge branches 'release', 'asus', 'sony-laptop' and 'thinkpad' into release
[pandora-kernel.git] / drivers / net / tokenring / skisa.c
index d6ba41c..41b6999 100644 (file)
@@ -13,7 +13,7 @@
  *     - SysKonnect TR4/16(+) ISA      (SK-4190)
  *
  *  Maintainer(s):
- *    AF        Adam Fritzler           mid@auk.cx
+ *    AF        Adam Fritzler
  *    JF       Jochen Friedrich        jochen@scram.de
  *
  *  Modification History:
@@ -139,11 +139,11 @@ static int __init setup_card(struct net_device *dev, struct device *pdev)
         static int versionprinted;
        const unsigned *port;
        int j, err = 0;
+       DECLARE_MAC_BUF(mac);
 
        if (!dev)
                return -ENOMEM;
 
-       SET_MODULE_OWNER(dev);
        if (dev->base_addr)     /* probe specific location */
                err = sk_isa_probe1(dev, dev->base_addr);
        else {
@@ -170,11 +170,8 @@ static int __init setup_card(struct net_device *dev, struct device *pdev)
                
        sk_isa_read_eeprom(dev);
 
-       printk(KERN_DEBUG "skisa.c:    Ring Station Address: ");
-       printk("%2.2x", dev->dev_addr[0]);
-       for (j = 1; j < 6; j++)
-               printk(":%2.2x", dev->dev_addr[j]);
-       printk("\n");
+       printk(KERN_DEBUG "skisa.c:    Ring Station Address: %s\n",
+              print_mac(mac, dev->dev_addr));
                
        tp = netdev_priv(dev);
        tp->setnselout = sk_isa_setnselout_pins;
@@ -380,6 +377,10 @@ static int __init sk_isa_init(void)
                dev->dma = dma[i];
                pdev = platform_device_register_simple("skisa",
                        i, NULL, 0);
+               if (IS_ERR(pdev)) {
+                       free_netdev(dev);
+                       continue;
+               }
                err = setup_card(dev, &pdev->dev);
                if (!err) {
                        sk_isa_dev[i] = pdev;
@@ -395,9 +396,10 @@ static int __init sk_isa_init(void)
        /* Probe for cards. */
        if (num == 0) {
                printk(KERN_NOTICE "skisa.c: No cards found.\n");
-               return (-ENODEV);
+               platform_driver_unregister(&sk_isa_driver);
+               return -ENODEV;
        }
-       return (0);
+       return 0;
 }
 
 static void __exit sk_isa_cleanup(void)