|
@@ -203,22 +203,8 @@ skbuff at an offset of "+2", 16-byte aligning the IP header.
|
|
|
IIId. Synchronization
|
|
|
|
|
|
Most operations are synchronized on the np->lock irq spinlock, except the
|
|
|
-performance critical codepaths:
|
|
|
-
|
|
|
-The rx process only runs in the interrupt handler. Access from outside
|
|
|
-the interrupt handler is only permitted after disable_irq().
|
|
|
-
|
|
|
-The rx process usually runs under the netif_tx_lock. If np->intr_tx_reap
|
|
|
-is set, then access is permitted under spin_lock_irq(&np->lock).
|
|
|
-
|
|
|
-Thus configuration functions that want to access everything must call
|
|
|
- disable_irq(dev->irq);
|
|
|
- netif_tx_lock_bh(dev);
|
|
|
- spin_lock_irq(&np->lock);
|
|
|
-
|
|
|
-IV. Notes
|
|
|
-
|
|
|
-NatSemi PCI network controllers are very uncommon.
|
|
|
+recieve and transmit paths which are synchronised using a combination of
|
|
|
+hardware descriptor ownership, disabling interrupts and NAPI poll scheduling.
|
|
|
|
|
|
IVb. References
|
|
|
|