Archived
14
0
Fork 0

natsemi: Update locking documentation

The documentation regarding synchronisation at the head of the natsemi
driver was badly bitrotted so replace it with a general statement about
the techniques used which is less likely to bitrot.

Also remove the note saying these chips are uncommon - it makes little
difference but they were used in a number of laptops and at least one mass
market PCI ethernet card.

Signed-off-by: Mark Brown <broonie@sirena.org.uk>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Mark Brown 2008-01-27 13:58:11 +00:00 committed by David S. Miller
parent 35b5f6b1a8
commit 6344f0521a

View file

@ -203,22 +203,8 @@ skbuff at an offset of "+2", 16-byte aligning the IP header.
IIId. Synchronization IIId. Synchronization
Most operations are synchronized on the np->lock irq spinlock, except the Most operations are synchronized on the np->lock irq spinlock, except the
performance critical codepaths: recieve and transmit paths which are synchronised using a combination of
hardware descriptor ownership, disabling interrupts and NAPI poll scheduling.
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.
IVb. References IVb. References