diff options
Diffstat (limited to 'drivers/net/smc-ultra.c')
-rw-r--r-- | drivers/net/smc-ultra.c | 15 |
1 files changed, 5 insertions, 10 deletions
diff --git a/drivers/net/smc-ultra.c b/drivers/net/smc-ultra.c index b564c677c6d2..6d9dae60a697 100644 --- a/drivers/net/smc-ultra.c +++ b/drivers/net/smc-ultra.c | |||
@@ -194,12 +194,7 @@ struct net_device * __init ultra_probe(int unit) | |||
194 | err = do_ultra_probe(dev); | 194 | err = do_ultra_probe(dev); |
195 | if (err) | 195 | if (err) |
196 | goto out; | 196 | goto out; |
197 | err = register_netdev(dev); | ||
198 | if (err) | ||
199 | goto out1; | ||
200 | return dev; | 197 | return dev; |
201 | out1: | ||
202 | cleanup_card(dev); | ||
203 | out: | 198 | out: |
204 | free_netdev(dev); | 199 | free_netdev(dev); |
205 | return ERR_PTR(err); | 200 | return ERR_PTR(err); |
@@ -325,6 +320,9 @@ static int __init ultra_probe1(struct net_device *dev, int ioaddr) | |||
325 | #endif | 320 | #endif |
326 | NS8390_init(dev, 0); | 321 | NS8390_init(dev, 0); |
327 | 322 | ||
323 | retval = register_netdev(dev); | ||
324 | if (retval) | ||
325 | goto out; | ||
328 | return 0; | 326 | return 0; |
329 | out: | 327 | out: |
330 | release_region(ioaddr, ULTRA_IO_EXTENT); | 328 | release_region(ioaddr, ULTRA_IO_EXTENT); |
@@ -583,11 +581,8 @@ init_module(void) | |||
583 | dev->irq = irq[this_dev]; | 581 | dev->irq = irq[this_dev]; |
584 | dev->base_addr = io[this_dev]; | 582 | dev->base_addr = io[this_dev]; |
585 | if (do_ultra_probe(dev) == 0) { | 583 | if (do_ultra_probe(dev) == 0) { |
586 | if (register_netdev(dev) == 0) { | 584 | dev_ultra[found++] = dev; |
587 | dev_ultra[found++] = dev; | 585 | continue; |
588 | continue; | ||
589 | } | ||
590 | cleanup_card(dev); | ||
591 | } | 586 | } |
592 | free_netdev(dev); | 587 | free_netdev(dev); |
593 | printk(KERN_WARNING "smc-ultra.c: No SMC Ultra card found (i/o = 0x%x).\n", io[this_dev]); | 588 | printk(KERN_WARNING "smc-ultra.c: No SMC Ultra card found (i/o = 0x%x).\n", io[this_dev]); |