diff -r af21f0bdc7c9 -r 2b9c78543663 devices/r8169-2.6.31-ethercat.c --- a/devices/r8169-2.6.31-ethercat.c Thu Sep 06 14:21:02 2012 +0200 +++ b/devices/r8169-2.6.31-ethercat.c Mon Nov 03 15:20:05 2014 +0100 @@ -2217,11 +2217,14 @@ rtl8169_init_phy(dev, tp); device_set_wakeup_enable(&pdev->dev, tp->features & RTL_FEATURE_WOL); - if (tp->ecdev && ecdev_open(tp->ecdev)) { - ecdev_withdraw(tp->ecdev); - goto err_out_msi_5; - } - + + if (tp->ecdev) { + rc = ecdev_open(tp->ecdev); + if (rc) { + ecdev_withdraw(tp->ecdev); + goto err_out_msi_5; + } + } out: return rc; @@ -3910,7 +3913,7 @@ struct pci_dev *pdev = to_pci_dev(device); struct net_device *dev = pci_get_drvdata(pdev); struct rtl8169_private *tp = netdev_priv(dev); - + if (tp->ecdev) return -EBUSY; @@ -3924,7 +3927,7 @@ struct pci_dev *pdev = to_pci_dev(device); struct net_device *dev = pci_get_drvdata(pdev); struct rtl8169_private *tp = netdev_priv(dev); - + if (tp->ecdev) return -EBUSY;