freebsd-skq/sys/dev
ambrisko 22d76bf909 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
..
aac Avoid holding the aac_io_lock over copyout. 2007-12-20 21:13:58 +00:00
acpi_support Don't attach to the "IBM0057" ID. This ID is used by IBM machines for 2007-10-25 17:30:18 +00:00
acpica Add a header containing constants for the various HPET registers and their 2008-01-16 18:47:07 +00:00
adlink Set D_NEEDGIANT. 2007-08-04 17:43:11 +00:00
advansys Prepare for future integration between CAM and newbus. xpt_bus_register 2007-06-17 05:55:54 +00:00
agp Add the 845M GMCH controller. 2007-11-26 18:17:07 +00:00
aha Prepare for future integration between CAM and newbus. xpt_bus_register 2007-06-17 05:55:54 +00:00
ahb Fix a compile error from the last change. 2007-06-17 15:21:09 +00:00
aic Prepare for future integration between CAM and newbus. xpt_bus_register 2007-06-17 05:55:54 +00:00
aic7xxx fix up some code for older systems changed by accident in the last commit 2007-10-21 04:11:13 +00:00
amd Prepare for future integration between CAM and newbus. xpt_bus_register 2007-06-17 05:55:54 +00:00
amr Rewrite the DMA code paths from being an impenitrable maze of special cases 2007-12-12 05:55:03 +00:00
an First real attempt at proper locking. The locking is a little complicated 2008-01-18 16:31:24 +00:00
ar Don't call bus_deactivate_resource() explicitly before calling 2007-03-21 03:38:37 +00:00
arcmsr Fix an incorrect FreeBSD version test. 2007-12-09 19:24:27 +00:00
arl o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
asmc Move ASMC_FAN_FUNCS in the Macmini structure declaration one line up 2007-11-22 23:38:24 +00:00
asr Prepare for future integration between CAM and newbus. xpt_bus_register 2007-06-17 05:55:54 +00:00
ata If the disk reports that it support the Compact Flash Association command 2008-01-02 20:33:54 +00:00
ath promote ath_defrag to m_collapse (and retire private+unused 2008-01-17 21:25:09 +00:00
atkbdc Remove explicit calls to keyboard methods with their respective variants 2007-12-29 21:55:25 +00:00
auxio
awi o add 802.11 state machine states for DFS and client-side power save 2007-09-05 21:31:32 +00:00
bce Fix function prototype for device_shutdown method. 2007-11-22 02:45:00 +00:00
bfe Fix function prototype for device_shutdown method. 2007-11-22 02:45:00 +00:00
bge Add support for the BMC5722. 2007-12-25 19:51:18 +00:00
bktr Rename the kthread_xxx (e.g. kthread_create()) calls 2007-10-20 23:23:23 +00:00
buslogic Prepare for future integration between CAM and newbus. xpt_bus_register 2007-06-17 05:55:54 +00:00
cardbus Make the PCI code aware of PCI domains (aka PCI segments) so we can 2007-09-30 11:05:18 +00:00
ce First in a series of changes to remove the now-unused Giant compatibility 2007-07-27 11:59:57 +00:00
ciss Fix NOP message sending in ciss_periodic() which causes panic with 2007-11-05 13:54:23 +00:00
cm Spelling fix for interupt -> interrupt 2007-10-12 06:03:46 +00:00
cnw Catchup to filters by piso. 2007-02-23 19:27:49 +00:00
coretemp Disable the check for errata AE18. On MacBooks (1,1 version) there's 2008-01-10 16:09:22 +00:00
cp First in a series of changes to remove the now-unused Giant compatibility 2007-07-27 11:59:57 +00:00
cpufreq Since DELAY() was moved, most <machine/clock.h> #includes have been 2006-05-16 14:37:58 +00:00
cs o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
ct o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
ctau Spelling fix for interupt -> interrupt 2007-10-12 06:03:46 +00:00
cx Spelling fix for interupt -> interrupt 2007-10-12 06:03:46 +00:00
cxgb - remove bogus_imm counter 2008-01-17 21:25:58 +00:00
cy o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
dc Fix function prototype for device_shutdown method. 2007-11-22 02:45:00 +00:00
dcons Add a new 'why' argument to kdb_enter(), and a set of constants to use 2007-12-25 17:52:02 +00:00
de The maxsegsz of a dma tag created in de(4) is TULIP_DATA_PER_DESC bytes. 2007-06-07 00:28:47 +00:00
digi Fix our ioctl(2) implementation when the argument is "int". New 2006-09-27 19:57:02 +00:00
dpt Prepare for future integration between CAM and newbus. xpt_bus_register 2007-06-17 05:55:54 +00:00
drm Dont accidentally remove a filesocket which is still in use. This gives 2008-01-16 13:54:40 +00:00
ed Add Winbond W89C940F to the list. Also, stub in some entries for two 2007-12-31 03:29:02 +00:00
eisa
em Add COHERENT to descriptor mem allocation for the 2007-11-28 23:04:11 +00:00
en Where I previously removed calls to kdb_enter(), now remove include of 2007-05-29 11:28:28 +00:00
ep o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 15:55:37 +00:00
esp The ESP driver isn't really MPSAFE, so don't mark it that it is. 2007-11-11 14:45:35 +00:00
ex s/destory/destroy/ (except for the code in contrib/). 2007-04-16 12:31:35 +00:00
exca - Fix exca_(io|mem)_map() to return proper errno values. 2007-03-23 17:15:07 +00:00
fatm o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
fb Replace explicit calls to video methods with their respective variants 2007-12-29 23:26:59 +00:00
fdc The wakeup() line from the rev. 1.319 is wrong and reintroduces 2008-01-11 16:50:52 +00:00
fe o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
firewire Rename the kthread_xxx (e.g. kthread_create()) calls 2007-10-20 23:23:23 +00:00
flash Rename the kthread_xxx (e.g. kthread_create()) calls 2007-10-20 23:23:23 +00:00
fxp Remove the volatile qualifier to apply to fxp_miibus_readreg(). 2007-05-30 03:46:04 +00:00
gem - Retire npe_defrag(), gem_defrag(), msk_defrag(), nfe_defrag(), and 2008-01-17 23:37:47 +00:00
harp
hatm Remove the __inline qualifier from a function which is in fact not an 2007-06-08 01:37:47 +00:00
hfa o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
hifn Overhaul driver/subsystem api's: 2007-03-21 03:42:51 +00:00
hme Remove invalid BUS_DMA_ALLOCNOW when creating a tag which is used for 2007-05-01 11:50:11 +00:00
hptiop Prepare for future integration between CAM and newbus. xpt_bus_register 2007-06-17 05:55:54 +00:00
hptmv Rename the kthread_xxx (e.g. kthread_create()) calls 2007-10-20 23:23:23 +00:00
hptrr Hide common prints under bootverbose. 2008-01-15 19:21:08 +00:00
hwpmc VOP_LOCK1() (and so VOP_LOCK()) and VOP_UNLOCK() are only used in 2008-01-13 14:44:15 +00:00
ic Fix style nits. No md5 changes in .o's. ;-) 2006-09-08 21:46:01 +00:00
ichsmb Add the Intel 82801FB (ICH6) SMBus controller and the 2007-11-26 19:54:54 +00:00
ichwd Add support for ICH8M. 2008-01-07 09:46:39 +00:00
ida o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
idt Spelling fix for interupt -> interrupt 2007-10-12 06:03:46 +00:00
ie o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
ieee488 Catchup with filters 2007-02-23 19:34:52 +00:00
if_ndis Use pause(9) instead of a tsleep() on a stack variable. 2008-01-17 20:11:58 +00:00
iicbus Don't use spinlocks here. The iicbus transactions can take a long 2007-04-17 05:48:35 +00:00
iir Fix a buffer overflow in the processing of various SCSI commands. This likely 2008-01-09 20:02:56 +00:00
io
ipmi Rename the kthread_xxx (e.g. kthread_create()) calls 2007-10-20 23:23:23 +00:00
ips o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
ipw Plug two potential (root-only, local) information leaks. buf is not 2007-12-05 19:32:07 +00:00
iscsi/initiator Rename the kthread_xxx (e.g. kthread_create()) calls 2007-10-20 23:23:23 +00:00
isp Add missing locking for SBus controllers. 2007-11-05 11:22:18 +00:00
ispfw The MODULE_NAME should "ispfw" unless overriden, not "isp". 2006-12-10 03:42:57 +00:00
iwi Plug two potential (root-only, local) information leaks. buf is not 2007-12-05 19:32:07 +00:00
ixgb Catch up the rest of the drivers with the ether_vlan_mtap modifications. 2007-03-04 03:38:08 +00:00
ixgbe This is an update to the new Intel 10G 82598 driver. 2007-09-04 02:31:35 +00:00
joy
kbd Remove explicit calls to keyboard methods with their respective variants 2007-12-29 21:55:25 +00:00
kbdmux Remove explicit calls to keyboard methods with their respective variants 2007-12-29 21:55:25 +00:00
le Correct the comments in am7990_intr() and am79900_intr(); it's not 2007-12-30 00:23:38 +00:00
led Make it possible to specify an initial state for the LED. 2007-04-23 12:42:15 +00:00
lge Fix function prototype for device_shutdown method. 2007-11-22 02:45:00 +00:00
lmc Universally adopt most conventional spelling of acquire. 2007-05-27 20:50:23 +00:00
mc146818 Export mc146818_def_{read,write}() so the front-end can make use 2007-06-16 23:10:00 +00:00
mca
mcd
md VOP_LOCK1() (and so VOP_LOCK()) and VOP_UNLOCK() are only used in 2008-01-13 14:44:15 +00:00
mem
mfi Add Dell's sub-vendor id to identify PERC6 RAID controller which has LSI 2007-12-19 17:23:47 +00:00
mii Reset autonegotation timer if media option is not IFM_AUTO. 2007-11-16 10:39:18 +00:00
mk48txx Revisit the watchdogs: Resetting the error to EINVAL after failing to set the 2007-03-27 21:03:37 +00:00
mlx o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
mly Prepare for future integration between CAM and newbus. xpt_bus_register 2007-06-17 05:55:54 +00:00
mmc Rename the kthread_xxx (e.g. kthread_create()) calls 2007-10-20 23:23:23 +00:00
mpt Ever since the module registration system was introduced to this driver, 2007-11-03 17:33:41 +00:00
mse o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
msk - Retire npe_defrag(), gem_defrag(), msk_defrag(), nfe_defrag(), and 2008-01-17 23:37:47 +00:00
mxge Add optional support to mxge for MSI-X interrupts and multiple receive 2008-01-15 20:34:49 +00:00
my Spelling fix for interupt -> interrupt 2007-10-12 06:03:46 +00:00
ncv o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
nfe - Retire npe_defrag(), gem_defrag(), msk_defrag(), nfe_defrag(), and 2008-01-17 23:37:47 +00:00
nge Fix function prototype for device_shutdown method. 2007-11-22 02:45:00 +00:00
nmdm Call ttyld_close() in nmdmclose() to ensure that nmdm(4) 2007-08-01 21:38:11 +00:00
nsp o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
null Sweep kernel replacing suser(9) calls with priv(9) calls, assigning 2006-11-06 13:42:10 +00:00
nve Fix function prototype for device_shutdown method. 2007-11-22 02:45:00 +00:00
nvram Split /dev/nvram driver out of isa/clock.c for i386 and amd64. I have not 2007-10-26 03:23:54 +00:00
nxge Merge Neterion if_nxge driver version 2.0.9.11230 with the following 2007-10-29 14:19:32 +00:00
ofw Add a new 'why' argument to kdb_enter(), and a set of constants to use 2007-12-25 17:52:02 +00:00
patm o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
pbio Since DELAY() was moved, most <machine/clock.h> #includes have been 2006-05-16 14:37:58 +00:00
pccard Bring in some new Sierra Wireless drivers running under pccard. 2007-10-12 08:26:15 +00:00
pccbb Rename the kthread_xxx (e.g. kthread_create()) calls 2007-10-20 23:23:23 +00:00
pcf Don't call bus_deactivate_resource() explicitly before calling 2007-03-21 03:38:37 +00:00
pci Don't cache the new-bus name of a PCI device in the PCI conf structure, 2008-01-15 21:40:46 +00:00
pdq Fix preprocessor code to check for a symbol being defined prior to checking 2007-06-08 01:49:04 +00:00
powermac_nvram Redefine bus_space_tag_t on PowerPC from a 32-bit integral to 2007-12-19 18:00:50 +00:00
ppbus Work around problems with the ppbus(4)'s interesting way of managing 2008-01-10 23:43:47 +00:00
ppc Don't call bus_deactivate_resource() explicitly before calling 2007-03-21 03:38:37 +00:00
pst o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
puc o Add Moxa Technologies CP-104EL PCI Express 4 port Serial card. 2008-01-12 19:14:29 +00:00
ral Check wep flag in *_tx_mgt since we need to encrypt some management frame 2007-11-06 07:30:12 +00:00
random Correct a random value disclosure in random(4). 2007-11-29 16:06:12 +00:00
ray add defs just removed from ieee80211.h 2007-09-05 21:25:58 +00:00
rc o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
re - Retire npe_defrag(), gem_defrag(), msk_defrag(), nfe_defrag(), and 2008-01-17 23:37:47 +00:00
rndtest
rp Initialize DWBuf[3]. 2007-07-05 06:51:49 +00:00
rr232x Prepare for future integration between CAM and newbus. xpt_bus_register 2007-06-17 05:55:54 +00:00
safe bandaid crash as I have no time to research the issue and the driver 2007-11-03 19:10:14 +00:00
sbni Quiet framelen uninitialized warning. I think it was a false alarm. 2007-07-05 07:46:33 +00:00
sbsh Propagae volatile qualifier. 2007-06-08 01:54:22 +00:00
scc Add method enabled() to the SCC interface. This method can be used 2007-03-28 18:05:17 +00:00
scd Use pause() rather than tsleep() on stack variables and function pointers. 2007-02-27 17:23:29 +00:00
sf Fix function prototype for device_shutdown method. 2007-11-22 02:45:00 +00:00
si Based in info gleaned from the web and other drivers (including the Linux 2007-12-01 20:39:47 +00:00
sio Add a new 'why' argument to kdb_enter(), and a set of constants to use 2007-12-25 17:52:02 +00:00
sk Fix function prototype for device_shutdown method. 2007-11-22 02:45:00 +00:00
smbus Only support the SMB_OLD_BREAD ioctl if one of COMPAT_FREEBSD[456] is 2006-09-26 14:38:56 +00:00
sn o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
snc o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
snp Move the check for the snp device being already attached after the 2007-12-24 13:47:16 +00:00
sound Limit total hardware playback channels to just 1. The reliability of 2007-12-14 02:16:26 +00:00
speaker Now that tone & delay times are correct (independent of hz), adjust 2007-06-04 09:27:13 +00:00
spibus MFp4: when passing the transfer up the foodchain, make sure we go up 2006-10-20 07:11:52 +00:00
sr Don't call bus_deactivate_resource() explicitly before calling 2007-03-21 03:38:37 +00:00
stg o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
stge Use m_collapse(9) to collapse mbuf chains instead of relying on 2008-01-18 08:32:08 +00:00
streams Make ftruncate a 'struct file' operation rather than a vnode operation. 2008-01-07 20:05:19 +00:00
sym Fix Symbios driver on amd64: Since amd64 has 64 bit pointers but the same 2007-07-20 23:02:01 +00:00
syscons Replace explicit calls to video methods with their respective variants 2007-12-29 23:26:59 +00:00
tdfx Take the functionality contained in the former "options TDFX_LINUX" 2006-03-03 21:37:38 +00:00
ti Fix function prototype for device_shutdown method. 2007-11-22 02:45:00 +00:00
trm Prepare for future integration between CAM and newbus. xpt_bus_register 2007-06-17 05:55:54 +00:00
twa Deferred interrupts don't work yet, disable them. 2007-10-12 16:51:22 +00:00
twe o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
tx o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
txp Read MII_ANAR register and get common denominator ability. 2007-11-16 10:32:10 +00:00
uart Add a new 'why' argument to kdb_enter(), and a set of constants to use 2007-12-25 17:52:02 +00:00
ubsec Overhaul driver/subsystem api's: 2007-03-21 03:42:51 +00:00
usb Remove explicit calling of lockmgr() with the NULL argument. 2008-01-08 23:48:31 +00:00
utopia Fix a use-after-free. 2007-12-05 19:32:59 +00:00
vge Fix function prototype for device_shutdown method. 2007-11-22 02:45:00 +00:00
vkbd Remove explicit calls to keyboard methods with their respective variants 2007-12-29 21:55:25 +00:00
vr Fix function prototype for device_shutdown method. 2007-11-22 02:45:00 +00:00
vx Fix function prototype for device_shutdown method. 2007-11-22 02:45:00 +00:00
watchdog Revisit the watchdogs: Resetting the error to EINVAL after failing to set the 2007-03-27 21:03:37 +00:00
wds Prepare for future integration between CAM and newbus. xpt_bus_register 2007-06-17 05:55:54 +00:00
wi Make wi_set_channel() actually change the channel in hardware so that hostap 2007-09-16 20:02:29 +00:00
wl Don't call bus_deactivate_resource() explicitly before calling 2007-03-21 03:38:37 +00:00
wpi - Retire npe_defrag(), gem_defrag(), msk_defrag(), nfe_defrag(), and 2008-01-17 23:37:47 +00:00
xe o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00