Re: [PATCH 02/21] e1000: rework driver hardware reset locking

2006-06-27 Thread Auke Kok
Jeff Garzik wrote: Kok, Auke wrote: @@ -631,6 +627,9 @@ e1000_set_ringparam(struct net_device *n tx_ring_size = sizeof(struct e1000_tx_ring) * adapter-num_tx_queues; rx_ring_size = sizeof(struct e1000_rx_ring) * adapter-num_rx_queues; +while

Re: [PATCH 02/21] e1000: rework driver hardware reset locking

2006-06-26 Thread Jeff Garzik
Kok, Auke wrote: @@ -631,6 +627,9 @@ e1000_set_ringparam(struct net_device *n tx_ring_size = sizeof(struct e1000_tx_ring) * adapter-num_tx_queues; rx_ring_size = sizeof(struct e1000_rx_ring) * adapter-num_rx_queues; + while (test_and_set_bit(__E1000_RESETTING, adapter-flags))

[PATCH 02/21] e1000: rework driver hardware reset locking

2006-06-21 Thread Kok, Auke
After studying the driver mac reset code it was found that there were multiple race conditions possible to reset the unit twice or bring it e1000_up() double. This fixes all occurences where the driver needs to reset the mac. We also remove irq requesting/releasing into _open and _close so that