kernel/drivers/net/ethernet/3com/3c589_cs.c
.. .. @@ -195,6 +195,7 @@ 195 195 { 196 196 struct el3_private *lp; 197 197 struct net_device *dev; 198 + int ret;198 199 199 200 dev_dbg(&link->dev, "3c589_attach()\n"); 200 201 .. .. @@ -218,7 +219,15 @@ 218 219 219 220 dev->ethtool_ops = &netdev_ethtool_ops; 220 221 221 - return tc589_config(link);222 + ret = tc589_config(link);223 + if (ret)224 + goto err_free_netdev;225 +226 + return 0;227 +228 +err_free_netdev:229 + free_netdev(dev);230 + return ret;222 231 } 223 232 224 233 static void tc589_detach(struct pcmcia_device *link)