freebsd-nq/sys
Doug Ambrisko f0e1e8d9fb First real attempt at proper locking. The locking is a little complicated
since the the command and data that is being built to be sent to or read
from the HW lives in the softc.  Commands are later run via an_setdef etc.
In the ioctl path various references are kept to the data stored in
the softc so it needs to be protected.  Almost think of the command
in the softc a global variable since it essentially is.  Since locking
wasn't done in this type of context the commands would get corrupted.

Thanks to avatar@ for catching some lock issues and dhw@ for testing.

Things are a lot more stable except for the MPI-350 cards.  My an(4)
remote laptop stays on the network now.

The driver should be changed so that it uses private memory that is passed
to the functions that talk to the card.  Then only those functions would
really need to grab locks.

Reviewed by:	avatar@
2008-01-18 16:31:24 +00:00
..
amd64 Use cpu_spinwait() (i.e., "pause") when spinning on rdtsc during DELAY(). 2008-01-17 18:59:38 +00:00
arm - Retire npe_defrag(), gem_defrag(), msk_defrag(), nfe_defrag(), and 2008-01-17 23:37:47 +00:00
boot Bump manpage date for rev 1.27 2008-01-16 07:00:55 +00:00
bsm Merge OpenBSM 1.0 changes to src/sys/bsm: 2007-10-29 18:47:25 +00:00
cam o Correct EasyMP3 EM732X usb 2.0 flash mp3 player revision: 2008-01-12 19:24:55 +00:00
cddl VOP_LOCK1() (and so VOP_LOCK()) and VOP_UNLOCK() are only used in 2008-01-13 14:44:15 +00:00
compat VOP_LOCK1() (and so VOP_LOCK()) and VOP_UNLOCK() are only used in 2008-01-13 14:44:15 +00:00
conf Add optional support to mxge for MSI-X interrupts and multiple receive 2008-01-15 20:34:49 +00:00
contrib VOP_LOCK1() (and so VOP_LOCK()) and VOP_UNLOCK() are only used in 2008-01-13 14:44:15 +00:00
crypto Make test00 compilable again. 2008-01-15 18:34:47 +00:00
ddb Refine textdump comments slightly. 2008-01-10 00:26:47 +00:00
dev First real attempt at proper locking. The locking is a little complicated 2008-01-18 16:31:24 +00:00
fs udf_vget() shall vgone() the vnode when the file_entry cannot be allocated 2008-01-18 12:09:54 +00:00
gdb Add kdb_cpu_sync_icache(), intended to synchronize instruction 2007-06-09 21:55:17 +00:00
geom Various fixes: 2007-12-24 01:01:59 +00:00
gnu VOP_LOCK1() (and so VOP_LOCK()) and VOP_UNLOCK() are only used in 2008-01-13 14:44:15 +00:00
i4b Spelling fix for interupt -> interrupt 2007-10-12 06:03:46 +00:00
i386 Use cpu_spinwait() (i.e., "pause") when spinning on rdtsc during DELAY(). 2008-01-17 18:59:38 +00:00
ia64 Add COMPAT_FREEBSD7 and enable it in configs that have COMPAT_FREEBSD6. 2008-01-07 21:40:11 +00:00
isa Use cpu_spinwait() (i.e., "pause") when spinning on rdtsc during DELAY(). 2008-01-17 18:59:38 +00:00
kern Make sure reading td_runtime in critical section since thread may be 2008-01-18 13:00:28 +00:00
libkern Do not use __XSCALE__ to detect if clz is available, use _ARM_ARCH_5 instead. 2007-10-13 12:05:36 +00:00
modules Add optional support to mxge for MSI-X interrupts and multiple receive 2008-01-15 20:34:49 +00:00
net Remove a chunk of duplicated code, test the destination address against the 2008-01-18 09:34:09 +00:00
net80211 update channel flag defs to match _ieee80211.h so cpp doesn't complain 2007-12-13 01:23:40 +00:00
netatalk Annotate two possible bugs in a comment: (1) we allocate and explicitly 2007-11-20 18:50:54 +00:00
netatm Disconnect netatm from the build as it is not MPSAFE and relies on 2007-07-14 21:49:24 +00:00
netgraph Remove explicit locking of struct file. 2007-12-30 01:42:15 +00:00
netinet In tcp_ctloutput(), don't hold the inpcb lock over sooptcopyin(), rather, 2008-01-18 12:19:50 +00:00
netinet6 un-__P() 2008-01-08 19:08:58 +00:00
netipsec Add sysctls to if_enc(4) to control whether the firewalls or 2007-11-28 22:33:53 +00:00
netipx Make tcpstates[] static, and make sure TCPSTATES is defined before 2007-07-30 11:06:42 +00:00
netnatm
netncp Refactor select to reduce contention and hide internal implementation 2007-12-16 06:21:20 +00:00
netsmb Refactor select to reduce contention and hide internal implementation 2007-12-16 06:21:20 +00:00
nfs
nfs4client VOP_LOCK1() (and so VOP_LOCK()) and VOP_UNLOCK() are only used in 2008-01-13 14:44:15 +00:00
nfsclient VOP_LOCK1() (and so VOP_LOCK()) and VOP_UNLOCK() are only used in 2008-01-13 14:44:15 +00:00
nfsserver VOP_LOCK1() (and so VOP_LOCK()) and VOP_UNLOCK() are only used in 2008-01-13 14:44:15 +00:00
opencrypto Make ftruncate a 'struct file' operation rather than a vnode operation. 2008-01-07 20:05:19 +00:00
pc98 Add COMPAT_FREEBSD7 and enable it in configs that have COMPAT_FREEBSD6. 2008-01-07 21:40:11 +00:00
pccard
pci Overhaul re(4). 2008-01-15 01:10:31 +00:00
powerpc Add COMPAT_FREEBSD7 and enable it in configs that have COMPAT_FREEBSD6. 2008-01-07 21:40:11 +00:00
rpc Remove the now-unused NET_{LOCK,UNLOCK,ASSERT}_GIANT() macros, which 2007-08-06 14:26:03 +00:00
security VOP_LOCK1() (and so VOP_LOCK()) and VOP_UNLOCK() are only used in 2008-01-13 14:44:15 +00:00
sparc64 Add COMPAT_FREEBSD7 and enable it in configs that have COMPAT_FREEBSD6. 2008-01-07 21:40:11 +00:00
sun4v Add an access type parameter to pmap_enter(). It will be used to implement 2008-01-03 07:34:34 +00:00
sys Add POSIX clock id CLOCK_THREAD_CPUTIME_ID, this can be used to measure 2008-01-18 07:04:42 +00:00
tools
ufs VOP_LOCK1() (and so VOP_LOCK()) and VOP_UNLOCK() are only used in 2008-01-13 14:44:15 +00:00
vm VOP_LOCK1() (and so VOP_LOCK()) and VOP_UNLOCK() are only used in 2008-01-13 14:44:15 +00:00
Makefile Complete repo-copy and move of Coda from src/sys/coda to src/sys/fs/coda 2007-07-12 21:04:58 +00:00