diff -r af21f0bdc7c9 -r 2b9c78543663 devices/e100-2.6.32-ethercat.c --- a/devices/e100-2.6.32-ethercat.c Thu Sep 06 14:21:02 2012 +0200 +++ b/devices/e100-2.6.32-ethercat.c Mon Nov 03 15:20:05 2014 +0100 @@ -1205,7 +1205,7 @@ config->multicast_all = 0x1; /* 1=accept, 0=no */ /* disable WoL when up */ - if (nic->ecdev || + if (nic->ecdev || (netif_running(nic->netdev) || !(nic->flags & wol_magic))) config->magic_packet_disable = 0x1; /* 1=off, 0=on */ @@ -3003,7 +3003,8 @@ pdev->irq, netdev->dev_addr); if (nic->ecdev) { - if (ecdev_open(nic->ecdev)) { + err = ecdev_open(nic->ecdev); + if (err) { ecdev_withdraw(nic->ecdev); goto err_out_free; } @@ -3239,7 +3240,7 @@ { printk(KERN_INFO DRV_NAME " " DRV_DESCRIPTION " " DRV_VERSION ", master " EC_MASTER_VERSION "\n"); - + return pci_register_driver(&e100_driver); }