freebsd-dev/sys/dev
Alfred Perlstein cc8317f2b0 Fix a deadlock in detach/shutdown.
The problem was that I was acquiring the driver sx lock and then waiting
for a taskqueue to drain, however the taskqueue itself would try to
acquire the lock as well leading to a deadlock.

To fix the problem roll my own exclusive lock that allows for lock
cancellation.  This is a normal exclusive lock, however if someone
marks it as "dead" then all waiters who request an error return will
get back an error instead of continuing to wait for the lock.

In this particular case, the shutdown and detach functions kill the
lock while the async task thread tries to acquire the lock but will
abort if the lock returns an error.

The other option was to drop the driver lock mid-detach and mid-shutdown,
mid-detach was a ok, however mid-shutdown was not.

While I'm here, fix a bug in what appears to be the mii link status
word in the softc going out to lunch.  Explicitly set the status
word to 1 after initializing the mii.  This would result in an interface
that would never respond to "if_start" requests as the mii interface
would always look down.
2006-12-23 17:18:18 +00:00
..
aac On amd64 platform, use linux32 headers so 32-bit Linux applications 2006-12-20 17:10:53 +00:00
acpi_support Prevent freeing wild pointer when bailing out. 2006-11-06 12:14:27 +00:00
acpica ACPIIO_BATT_GET_UNITS would always return ENXIO. However, it should never 2006-12-22 00:57:26 +00:00
adlink
advansys Add MODULE_DEPENDS for cam, pci, mca, eisa and isa where needed. 2006-12-11 18:28:31 +00:00
agp The page queues lock is no longer required by vm_page_busy() or 2006-10-22 21:18:48 +00:00
aha Add MODULE_DEPENDS for cam, pci, mca, eisa and isa where needed. 2006-12-11 18:28:31 +00:00
ahb Add MODULE_DEPENDS for cam, pci, mca, eisa and isa where needed. 2006-12-11 18:28:31 +00:00
aic 2nd and final commit that moves us to CAM_NEW_TRAN_CODE 2006-11-02 00:54:38 +00:00
aic7xxx 2nd and final commit that moves us to CAM_NEW_TRAN_CODE 2006-11-02 00:54:38 +00:00
amd Add MODULE_DEPENDS for cam, pci, mca, eisa and isa where needed. 2006-12-11 18:28:31 +00:00
amr Add MODULE_DEPENDS for cam, pci, mca, eisa and isa where needed. 2006-12-11 18:28:31 +00:00
an Sweep kernel replacing suser(9) calls with priv(9) calls, assigning 2006-11-06 13:42:10 +00:00
ar
arcmsr Update to version 1.20.00.13 of the arcmsr driver. This fixes many bugs 2006-12-13 08:46:03 +00:00
arl Sweep kernel replacing suser(9) calls with priv(9) calls, assigning 2006-11-06 13:42:10 +00:00
asr Add MODULE_DEPENDS for cam, pci, mca, eisa and isa where needed. 2006-12-11 18:28:31 +00:00
ata Fix a typo in ata-queue.c 2006-12-23 12:40:54 +00:00
ath Track v0.9.20.3 hal: 2006-12-13 19:34:35 +00:00
atkbdc Spell "Kensington Thinking Mouse" correctly. 2006-12-18 18:48:28 +00:00
auxio
awi In FreeBSD, we don't need sc_power callback 2006-12-12 03:05:04 +00:00
bce Fix compile with BCE_DEBUG. The last one tripped up gcc 2.95 on 4.x even 2006-12-06 22:53:22 +00:00
bfe Add suspend/resume support. Unlike many other NIC drivers, 2006-11-20 23:30:07 +00:00
bge Re-enable MSI support for those chips on which it is believed to work 2006-12-22 02:59:58 +00:00
bktr Update prototype for smbus callback change. 2006-09-18 20:17:42 +00:00
buslogic Add MODULE_DEPENDS for cam, pci, mca, eisa and isa where needed. 2006-12-11 18:28:31 +00:00
cardbus Minor cleanup of CIS parsing. 2006-06-12 03:28:42 +00:00
ce Sweep kernel replacing suser(9) calls with priv(9) calls, assigning 2006-11-06 13:42:10 +00:00
ciss o ciss.ko depends on cam and pci. 2006-11-30 15:14:17 +00:00
cm Make cm(4) driver MPSAFE. 2006-06-11 22:25:01 +00:00
cnw Sweep kernel replacing suser(9) calls with priv(9) calls, assigning 2006-11-06 13:42:10 +00:00
cp Sweep kernel replacing suser(9) calls with priv(9) calls, assigning 2006-11-06 13:42:10 +00:00
cpufreq
cs - Consistently use if_printf() only in interface methods: if_start(), 2006-09-15 15:16:12 +00:00
ct
ctau Sweep kernel replacing suser(9) calls with priv(9) calls, assigning 2006-11-06 13:42:10 +00:00
cx Sweep kernel replacing suser(9) calls with priv(9) calls, assigning 2006-11-06 13:42:10 +00:00
cy
dc Fix a bug originally introduced in rev. 1.74; don't reloaded the 2006-12-20 01:49:56 +00:00
dcons Sweep kernel replacing suser(9) calls with priv(9) calls, assigning 2006-11-06 13:42:10 +00:00
de - Consistently use if_printf() only in interface methods: if_start(), 2006-09-15 15:16:12 +00:00
digi Fix our ioctl(2) implementation when the argument is "int". New 2006-09-27 19:57:02 +00:00
dpt Add MODULE_DEPENDS for cam, pci, mca, eisa and isa where needed. 2006-12-11 18:28:31 +00:00
drm Sweep kernel replacing suser(9) calls with priv(9) calls, assigning 2006-11-06 13:42:10 +00:00
ed MFp4: 2006-06-12 04:30:42 +00:00
eisa
em remove no longer correct comment above em_read_pcie_cap_reg 2006-11-23 05:48:13 +00:00
en - Consistently use if_printf() only in interface methods: if_start(), 2006-09-15 15:16:12 +00:00
ep ALTQify ep(4). 2006-12-01 20:29:55 +00:00
esp Add MODULE_DEPENDS for cam, pci, mca, eisa and isa where needed. 2006-12-11 18:28:31 +00:00
ex
exca Cleanup sloppy ifdef. 2006-09-24 00:26:33 +00:00
fatm
fb Remove the DPMS code in creator_blank_display(), as it causes some 2006-08-24 22:00:24 +00:00
fdc Sweep kernel replacing suser(9) calls with priv(9) calls, assigning 2006-11-06 13:42:10 +00:00
fe Commit the results of the typo hunt by Darren Pilgrim. 2006-08-04 07:56:35 +00:00
firewire Correct a signedness bug which allowed members of the operator 2006-12-06 09:13:51 +00:00
flash MFp4: 2006-11-29 08:05:55 +00:00
fxp Grammar nit. 2006-12-01 13:07:52 +00:00
gem - Use the gem_tick() callout instead of if_slowtimo() for driving 2006-12-06 02:04:25 +00:00
gfb
harp
hatm
hfa
hifn Use newly added functions to simplify the code. 2006-06-04 22:17:25 +00:00
hme - Use the hme_tick() callout instead of if_slowtimo() for driving 2006-12-06 02:07:20 +00:00
hptmv
hwpmc Sweep kernel replacing suser(9) calls with priv(9) calls, assigning 2006-11-06 13:42:10 +00:00
ic Fix style nits. No md5 changes in .o's. ;-) 2006-09-08 21:46:01 +00:00
ichsmb Minor overhaul of SMBus support: 2006-09-11 20:52:41 +00:00
ichwd Align the interfaces for the various watchdogs and make the interface 2006-12-15 21:44:49 +00:00
ida
idt
ie
ieee488
if_ndis Sweep kernel replacing suser(9) calls with priv(9) calls, assigning 2006-11-06 13:42:10 +00:00
iicbus const poison 2006-12-05 06:19:36 +00:00
iir Add MODULE_DEPENDS for cam, pci, mca, eisa and isa where needed. 2006-12-11 18:28:31 +00:00
io
ipmi Align the interfaces for the various watchdogs and make the interface 2006-12-15 21:44:49 +00:00
ips o Add Adaptec ServeRAID 7x IDs. IDs taken from Linux. 2006-10-05 07:28:43 +00:00
ipw Hold on to firmware images until the interface detaches since 2006-06-10 17:29:40 +00:00
isp Restore revision 1.126 that got accidentally nuked. 2006-12-18 23:53:39 +00:00
ispfw The MODULE_NAME should "ispfw" unless overriden, not "isp". 2006-12-10 03:42:57 +00:00
iwi Add header files <sys/lock.h> and <sys/mutex.h> for mtx_init() and friends. 2006-12-07 15:24:38 +00:00
ixgb Move ethernet VLAN tags from mtags to its own mbuf packet header field 2006-09-17 13:33:30 +00:00
joy
kbd Sweep kernel replacing suser(9) calls with priv(9) calls, assigning 2006-11-06 13:42:10 +00:00
kbdmux Fix our ioctl(2) implementation when the argument is "int". New 2006-09-27 19:57:02 +00:00
le Use our own callout instead of if_slowtimo() for driving lance_watchdog() 2006-12-06 02:14:31 +00:00
led
lge - Consistently use if_printf() only in interface methods: if_start(), 2006-09-15 15:16:12 +00:00
lmc Sweep kernel replacing suser(9) calls with priv(9) calls, assigning 2006-11-06 13:42:10 +00:00
mc146818
mca
mcd
md Resolve two deadlocks that could be caused by busy md device backed 2006-12-14 11:34:07 +00:00
mem
mfi Some relatively minor changes and bug fixes: 2006-12-14 18:29:08 +00:00
mii Use BMSR for link status in one more place and clean up more. 2006-12-20 00:34:12 +00:00
mk48txx Align the interfaces for the various watchdogs and make the interface 2006-12-15 21:44:49 +00:00
mlx
mly Add MODULE_DEPENDS for cam, pci, mca, eisa and isa where needed. 2006-12-11 18:28:31 +00:00
mmc Preliminary MMC stack. This stack supports SD 1.0 cards only, but 2006-10-20 06:39:59 +00:00
mpt Make some slight reorganization (bringing back in some 2006-12-16 07:39:55 +00:00
mse
msk Add msk(4), a driver for Marvell/SysKonnect Yukon II Gigabit Ethernet 2006-12-13 02:30:11 +00:00
mxge Fix mxge_submit_8rx() to behave like the comments says it does, 2006-11-29 15:30:39 +00:00
my - Consistently use if_printf() only in interface methods: if_start(), 2006-09-15 15:16:12 +00:00
ncv no need to print unload anymore 2006-07-14 04:36:57 +00:00
nfe Fix TX/RX checksum offload. 2006-11-27 04:47:27 +00:00
nge Move ethernet VLAN tags from mtags to its own mbuf packet header field 2006-09-17 13:33:30 +00:00
nmdm Sweep kernel replacing suser(9) calls with priv(9) calls, assigning 2006-11-06 13:42:10 +00:00
nsp
null Sweep kernel replacing suser(9) calls with priv(9) calls, assigning 2006-11-06 13:42:10 +00:00
nve Fix an off by one error in struct nve_tx_desc's frags[] array as a result 2006-12-05 15:31:05 +00:00
ofw Add missing includes of priv.h. 2006-11-06 17:43:10 +00:00
patm Commit the results of the typo hunt by Darren Pilgrim. 2006-08-04 07:56:35 +00:00
pbio
pccard Thomas Wintergerst reports that when this tsleep went away, certain 2006-08-09 00:05:54 +00:00
pccbb Batch of changes: 2006-08-12 09:06:55 +00:00
pcf
pci Disable MSI for the Intel E7501 chipset. 2006-12-14 19:59:29 +00:00
pdq
powermac_nvram Add device to access and modify Open Firmware NVRAM settings in 2006-08-01 22:19:01 +00:00
ppbus Add MODULE_DEPENDS for cam, pci, mca, eisa and isa where needed. 2006-12-11 18:28:31 +00:00
ppc
pst
puc Add SIIG 4 port serial card based on the Oxford OX16PCI954. 2006-09-04 18:27:14 +00:00
ral Remove dependency on deprecated if_watchdog ABI. 2006-12-19 17:37:41 +00:00
random Sweep kernel replacing suser(9) calls with priv(9) calls, assigning 2006-11-06 13:42:10 +00:00
ray tweak comments about OLDCARD workarounds 2006-10-19 05:25:53 +00:00
rc
re - Use the re_tick() callout instead of if_slowtimo() for driving 2006-12-20 02:13:59 +00:00
rndtest
rp - Make rp(4) 64-bit- and endian-clean as well as work on strict alignment 2006-11-20 12:59:27 +00:00
rr232x
safe Use newly added functions to simplify the code. 2006-06-04 22:17:25 +00:00
sbni Sweep kernel replacing suser(9) calls with priv(9) calls, assigning 2006-11-06 13:42:10 +00:00
sbsh Sweep kernel replacing suser(9) calls with priv(9) calls, assigning 2006-11-06 13:42:10 +00:00
scc Fix braino: The cl_range field should not hold the shifted I/O 2006-07-26 03:10:01 +00:00
scd
sf Whitespace nits. 2006-09-15 11:01:23 +00:00
si Sweep kernel replacing suser(9) calls with priv(9) calls, assigning 2006-11-06 13:42:10 +00:00
sio Only treat positive values as errors... 2006-09-14 03:47:59 +00:00
sk Remove incomplete Yukon II support code which was added in if_sk.c, rev 1.123. 2006-12-14 04:10:26 +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
snc
snp
sound Fix distorted sound on Intel Desktop Board D101GGC (ATI SB450/ALC861). 2006-12-22 11:55:59 +00:00
speaker
spibus MFp4: when passing the transfer up the foodchain, make sure we go up 2006-10-20 07:11:52 +00:00
sr
stg no need to print unload anymore. 2006-07-14 04:35:59 +00:00
stge Move ethernet VLAN tags from mtags to its own mbuf packet header field 2006-09-17 13:33:30 +00:00
streams Clean up the svr4 socket cache and streams code some to make it more easily 2006-07-21 20:40:13 +00:00
sym 2nd and final commit that moves us to CAM_NEW_TRAN_CODE 2006-11-02 00:54:38 +00:00
syscons Replace magic numbers for console bell types with defines. 2006-11-16 12:27:51 +00:00
tdfx
ti Move ethernet VLAN tags from mtags to its own mbuf packet header field 2006-09-17 13:33:30 +00:00
trm Add MODULE_DEPENDS for cam, pci, mca, eisa and isa where needed. 2006-12-11 18:28:31 +00:00
twa Add MODULE_DEPENDS for cam, pci, mca, eisa and isa where needed. 2006-12-11 23:59:42 +00:00
twe
tx
txp Move ethernet VLAN tags from mtags to its own mbuf packet header field 2006-09-17 13:33:30 +00:00
uart - In sunkbd_probe_keyboard() don't bother to determine the keyboard layout 2006-11-02 00:01:15 +00:00
ubsec Switch to using STAILQ_REMOVE_HEAD() instead of STAILQ_REMOVE_HEAD_UNTIL(). 2006-10-24 11:17:46 +00:00
usb Fix a deadlock in detach/shutdown. 2006-12-23 17:18:18 +00:00
utopia
vge Fix the hardware VLAN tagging. TX was broken on little-endian 2006-11-30 21:01:59 +00:00
vkbd Fix our ioctl(2) implementation when the argument is "int". New 2006-09-27 19:57:02 +00:00
vr Whitespace nits. 2006-09-15 11:01:23 +00:00
vx
watchdog Align the interfaces for the various watchdogs and make the interface 2006-12-15 21:44:49 +00:00
wds Add MODULE_DEPENDS for cam, pci, mca, eisa and isa where needed. 2006-12-11 18:28:31 +00:00
wi replace if_watchdog w/ a private callout 2006-12-11 00:41:22 +00:00
wl Sweep kernel replacing suser(9) calls with priv(9) calls, assigning 2006-11-06 13:42:10 +00:00
xe
zs Sweep kernel replacing suser(9) calls with priv(9) calls, assigning 2006-11-06 13:42:10 +00:00