Handle return codes of register_netdev().

Signed-off-by: Borislav Petkov <[EMAIL PROTECTED]>


Index: 21-rc7/drivers/net/tokenring/olympic.c
===================================================================
--- 21-rc7.orig/drivers/net/tokenring/olympic.c
+++ 21-rc7/drivers/net/tokenring/olympic.c
@@ -264,7 +264,10 @@ static int __devinit olympic_probe(struc
        SET_NETDEV_DEV(dev, &pdev->dev);
 
        pci_set_drvdata(pdev,dev) ; 
-       register_netdev(dev) ; 
+
+       if (register_netdev(dev))
+               goto op_free_iomap;
+
        printk("Olympic: %s registered as: 
%s\n",olympic_priv->olympic_card_name,dev->name);
        if (olympic_priv->olympic_network_monitor) { /* Must go after 
register_netdev as we need the device name */ 
                char proc_name[20] ; 
@@ -281,7 +284,8 @@ op_free_iomap:
        if (olympic_priv->olympic_lap)
                iounmap(olympic_priv->olympic_lap);
 
-       free_netdev(dev);
+       if (dev)
+               free_netdev(dev);
 op_release_dev:
        pci_release_regions(pdev); 
 
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to