diff -r 50b861e981f7 -r f62b64fdbc23 devices/e1000e/netdev-2.6.32-ethercat.c --- a/devices/e1000e/netdev-2.6.32-ethercat.c Wed Dec 05 12:02:44 2012 +0100 +++ b/devices/e1000e/netdev-2.6.32-ethercat.c Wed Dec 05 12:15:49 2012 +0100 @@ -1190,10 +1190,10 @@ struct e1000_hw *hw = &adapter->hw; u32 icr = er32(ICR); - if (adapter->ecdev) { - int ec_work_done = 0; - adapter->clean_rx(adapter, &ec_work_done, 100); - e1000_clean_tx_irq(adapter); + if (adapter->ecdev) { + int ec_work_done = 0; + adapter->clean_rx(adapter, &ec_work_done, 100); + e1000_clean_tx_irq(adapter); return IRQ_HANDLED; } /* @@ -1294,10 +1294,10 @@ mod_timer(&adapter->watchdog_timer, jiffies + 1); } - if (adapter->ecdev) { - int ec_work_done = 0; - adapter->clean_rx(adapter, &ec_work_done, 100); - e1000_clean_tx_irq(adapter); + if (adapter->ecdev) { + int ec_work_done = 0; + adapter->clean_rx(adapter, &ec_work_done, 100); + e1000_clean_tx_irq(adapter); return IRQ_HANDLED; } @@ -1377,9 +1377,9 @@ adapter->rx_ring->set_itr = 0; } - if (adapter->ecdev) { - int ec_work_done = 0; - adapter->clean_rx(adapter, &ec_work_done, 100); + if (adapter->ecdev) { + int ec_work_done = 0; + adapter->clean_rx(adapter, &ec_work_done, 100); } else { if (napi_schedule_prep(&adapter->napi)) { adapter->total_rx_bytes = 0; @@ -3249,11 +3249,13 @@ /* From here on the code is the same as e1000e_up() */ clear_bit(__E1000_DOWN, &adapter->state); - napi_enable(&adapter->napi); - - e1000_irq_enable(adapter); - - netif_start_queue(netdev); + if (!adapter->ecdev) { + napi_enable(&adapter->napi); + + e1000_irq_enable(adapter); + + netif_start_queue(netdev); + } /* fire a link status change interrupt to start the watchdog */ ew32(ICS, E1000_ICS_LSC);