Linux Headquarters
[ Register ]
[ About us ] [ Home Page ]

Advertisement
[ Kernel ] [ Documentation ] [ Links ] [ Books ]

Advertisement

Kernel v2.4.1 /drivers/net/myri_sbus.c

Filename:/drivers/net/myri_sbus.c
Lines Added:8
Lines Deleted:2
Also changed in: (Previous) 2.4.1-pre12  2.4.1-pre11  2.4.1-pre10  2.4.0-ac12  2.4.0-ac11  2.4.0-ac10 
(Following) 2.4.1-ac1  2.4.1-ac2  2.4.1-ac3  2.4.1-ac4  2.4.1-ac5  2.4.1-ac6 

Location
[  2.4.1
  [  drivers
    [  net
       o  myri_sbus.c

Patch

diff -u --recursive --new-file v2.4.0/linux/drivers/net/myri_sbus.c linux/drivers/net/myri_sbus.c
--- v2.4.0/linux/drivers/net/myri_sbus.c   Mon Jun 19 13:30:58 2000
+++ linux/drivers/net/myri_sbus.c   Mon Jan 22 13:30:20 2001
@@ -892,6 +892,9 @@
    DET(("myri_ether_init(%p,%p,%d):\n", dev, sdev, num));
    dev = init_etherdev(0, sizeof(struct myri_eth));
 
+   if (!dev)
+      return -ENOMEM;
+
    if (version_printed++ == 0)
       printk(version);
 
@@ -982,7 +985,7 @@
                mp->reg_size, "MyriCOM Regs");
       if (!mp->regs) {
          printk("MyriCOM: Cannot map MyriCOM registers.\n");
-         return -ENODEV;
+         goto err;
       }
       mp->lanai = (unsigned short *) (mp->regs + (256 * 1024));
       mp->lanai3 = (unsigned int *) mp->lanai;
@@ -1059,7 +1062,7 @@
    if (request_irq(dev->irq, &myri_interrupt,
          SA_SHIRQ, "MyriCOM Ethernet", (void *) dev)) {
       printk("MyriCOM: Cannot register interrupt handler.\n");
-      return -ENODEV;
+      goto err;
    }
 
    DET(("ether_setup()\n"));
@@ -1083,6 +1086,9 @@
    root_myri_dev = mp;
 #endif
    return 0;
+err:   unregister_netdev(dev);
+   kfree(dev);
+   return -ENODEV;
 }
 
 static int __init myri_sbus_match(struct sbus_dev *sdev)


Comments: webmaster (at) linuxhq.com.
Advertising: banners (at) linuxhq.com.
Compilation ©1998-2008 Linux Headquarters, Inc.