Commit f1914226 authored by Mike McCormack's avatar Mike McCormack Committed by David S. Miller

skge: Make sure both ports initialize correctly

If allocation of the second ports fails, make sure that hw->ports
 is not 2 otherwise we'll crash trying to access the second port.

This fix is copied from a similar fix in the sky2 driver (ca519274...),
but is untested, as I don't have a skge card.
Signed-off-by: default avatarMike McCormack <mikem@ring3k.org>
Acked-by: default avatarStephen Hemminger <shemminger@vyatta.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent ec1652af
...@@ -3982,14 +3982,17 @@ static int __devinit skge_probe(struct pci_dev *pdev, ...@@ -3982,14 +3982,17 @@ static int __devinit skge_probe(struct pci_dev *pdev,
} }
skge_show_addr(dev); skge_show_addr(dev);
if (hw->ports > 1 && (dev1 = skge_devinit(hw, 1, using_dac))) { if (hw->ports > 1) {
if (register_netdev(dev1) == 0) dev1 = skge_devinit(hw, 1, using_dac);
if (dev1 && register_netdev(dev1) == 0)
skge_show_addr(dev1); skge_show_addr(dev1);
else { else {
/* Failure to register second port need not be fatal */ /* Failure to register second port need not be fatal */
dev_warn(&pdev->dev, "register of second port failed\n"); dev_warn(&pdev->dev, "register of second port failed\n");
hw->dev[1] = NULL; hw->dev[1] = NULL;
free_netdev(dev1); hw->ports = 1;
if (dev1)
free_netdev(dev1);
} }
} }
pci_set_drvdata(pdev, hw); pci_set_drvdata(pdev, hw);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment