diff -r d94281cb835a -r 87e502828b3f devices/r8169-2.6.36-ethercat.c --- a/devices/r8169-2.6.36-ethercat.c Mon Oct 27 14:55:50 2014 +0100 +++ b/devices/r8169-2.6.36-ethercat.c Mon Oct 27 16:33:23 2014 +0100 @@ -3239,15 +3239,18 @@ RTL_W16(CPlusCmd, RTL_R16(CPlusCmd) | RxVlan); 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_4; - } - - if(!tp->ecdev) { - if (pci_dev_run_wake(pdev)) - pm_runtime_put_noidle(&pdev->dev); - } + + if (pci_dev_run_wake(pdev)) + pm_runtime_put_noidle(&pdev->dev); + + if (tp->ecdev) { + rc = ecdev_open(tp->ecdev); + if (rc) { + ecdev_withdraw(tp->ecdev); + goto err_out_msi_4; + } + } + out: return rc;