equal
deleted
inserted
replaced
1171 e1000_get_hw_control(adapter); |
1171 e1000_get_hw_control(adapter); |
1172 |
1172 |
1173 // offer device to EtherCAT master module |
1173 // offer device to EtherCAT master module |
1174 adapter->ecdev = ecdev_offer(netdev, ec_poll, THIS_MODULE); |
1174 adapter->ecdev = ecdev_offer(netdev, ec_poll, THIS_MODULE); |
1175 if (adapter->ecdev) { |
1175 if (adapter->ecdev) { |
1176 if (ecdev_open(adapter->ecdev)) { |
1176 err = ecdev_open(adapter->ecdev); |
|
1177 if (err) { |
1177 ecdev_withdraw(adapter->ecdev); |
1178 ecdev_withdraw(adapter->ecdev); |
1178 goto err_register; |
1179 goto err_register; |
1179 } |
1180 } |
1180 } else { |
1181 } else { |
1181 /* tell the stack to leave us alone until e1000_open() is called */ |
1182 /* tell the stack to leave us alone until e1000_open() is called */ |
2402 |
2403 |
2403 if (!adapter->netdev && netif_running(netdev)) { |
2404 if (!adapter->netdev && netif_running(netdev)) { |
2404 /* No need to loop, because 82542 supports only 1 queue */ |
2405 /* No need to loop, because 82542 supports only 1 queue */ |
2405 struct e1000_rx_ring *ring = &adapter->rx_ring[0]; |
2406 struct e1000_rx_ring *ring = &adapter->rx_ring[0]; |
2406 e1000_configure_rx(adapter); |
2407 e1000_configure_rx(adapter); |
2407 if (adapter->ecdev) { |
2408 if (adapter->ecdev) { |
2408 /* fill rx ring completely! */ |
2409 /* fill rx ring completely! */ |
2409 adapter->alloc_rx_buf(adapter, ring, ring->count); |
2410 adapter->alloc_rx_buf(adapter, ring, ring->count); |
2410 } else { |
2411 } else { |
2411 /* this one leaves the last ring element unallocated! */ |
2412 /* this one leaves the last ring element unallocated! */ |
2412 adapter->alloc_rx_buf(adapter, ring, E1000_DESC_UNUSED(ring)); |
2413 adapter->alloc_rx_buf(adapter, ring, E1000_DESC_UNUSED(ring)); |
3289 |
3290 |
3290 static int __e1000_maybe_stop_tx(struct net_device *netdev, int size) |
3291 static int __e1000_maybe_stop_tx(struct net_device *netdev, int size) |
3291 { |
3292 { |
3292 struct e1000_adapter *adapter = netdev_priv(netdev); |
3293 struct e1000_adapter *adapter = netdev_priv(netdev); |
3293 struct e1000_tx_ring *tx_ring = adapter->tx_ring; |
3294 struct e1000_tx_ring *tx_ring = adapter->tx_ring; |
|
3295 |
|
3296 if (adapter->ecdev) { |
|
3297 return -EBUSY; |
|
3298 } |
3294 |
3299 |
3295 netif_stop_queue(netdev); |
3300 netif_stop_queue(netdev); |
3296 /* Herbert's original patch had: |
3301 /* Herbert's original patch had: |
3297 * smp_mb__after_netif_stop_queue(); |
3302 * smp_mb__after_netif_stop_queue(); |
3298 * but since that doesn't exist yet, just open code it. */ |
3303 * but since that doesn't exist yet, just open code it. */ |