diff -r af21f0bdc7c9 -r 2b9c78543663 devices/e1000/e1000_main-2.6.18-ethercat.c --- a/devices/e1000/e1000_main-2.6.18-ethercat.c Thu Sep 06 14:21:02 2012 +0200 +++ b/devices/e1000/e1000_main-2.6.18-ethercat.c Mon Nov 03 15:20:05 2014 +0100 @@ -983,7 +983,8 @@ // offer device to EtherCAT master module adapter->ecdev = ecdev_offer(netdev, ec_poll, THIS_MODULE); if (adapter->ecdev) { - if (ecdev_open(adapter->ecdev)) { + err = ecdev_open(adapter->ecdev); + if (err) { ecdev_withdraw(adapter->ecdev); goto err_register; } @@ -2178,7 +2179,7 @@ /* No need to loop, because 82542 supports only 1 queue */ struct e1000_rx_ring *ring = &adapter->rx_ring[0]; e1000_configure_rx(adapter); - if (adapter->ecdev) { + if (adapter->ecdev) { /* fill rx ring completely! */ adapter->alloc_rx_buf(adapter, ring, ring->count); } else {