|
@@ -4550,16 +4550,18 @@ static int __devinit sky2_probe(struct pci_dev *pdev,
|
|
|
if (hw->ports > 1) {
|
|
|
struct net_device *dev1;
|
|
|
|
|
|
+ err = -ENOMEM;
|
|
|
dev1 = sky2_init_netdev(hw, 1, using_dac, wol_default);
|
|
|
- if (!dev1)
|
|
|
- dev_warn(&pdev->dev, "allocation for second device failed\n");
|
|
|
- else if ((err = register_netdev(dev1))) {
|
|
|
+ if (dev1 && (err = register_netdev(dev1)) == 0)
|
|
|
+ sky2_show_addr(dev1);
|
|
|
+ else {
|
|
|
dev_warn(&pdev->dev,
|
|
|
"register of second port failed (%d)\n", err);
|
|
|
hw->dev[1] = NULL;
|
|
|
- free_netdev(dev1);
|
|
|
- } else
|
|
|
- sky2_show_addr(dev1);
|
|
|
+ hw->ports = 1;
|
|
|
+ if (dev1)
|
|
|
+ free_netdev(dev1);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
setup_timer(&hw->watchdog_timer, sky2_watchdog, (unsigned long) hw);
|