freebsd-nq/sys
Bill Paul e4cd85db6f Fix the problems people have been having with the Intel 2100B Centrino
wireless ever since I added the new spinlock code. Previously, I added
a special ndis_rxeof_serial() function to insure that when we receive
a packet, we never end up calling the MiniportReturnPacket() routine
until after the receive handler has finished. I set things up so that
ndis_rxeof_serial() would only be used for serialized miniports since
they depend on this property. Well, it turns out deserialized miniports
depend on a similar property: you can't let MiniportReturnPacket() be
called from the same context as the receive handler at all. The 2100B
driver happens to use a single spinlock for all of its synchronization,
and it tries to acquire it both while in MiniportHandleInterrupt() and
in MiniportReturnPacket(), so if we call MiniportReturnPacket() from
the MiniportHandleInterrupt() context, we will end up trying to acquire
the spinlock recursively, which you can't do.

To fix this, I made the ndis_rxeof_serial() handler the default. An
alternate solution would be to make ndis_return_packet() submit
the call to MiniportReturnPacket() to the NDIS task queue thread.
I may do that in the future, after I've tested things a bit more.
2004-04-21 02:29:28 +00:00
..
alpha MFamd64 2004-04-18 06:24:51 +00:00
amd64 Don't check for NULL, device_get_softc() always succeeds. 2004-04-21 02:10:58 +00:00
arm
boot Fix a last second typo in 'vi' that caused a problem. 2004-04-20 13:34:18 +00:00
cam The opt_da.h file doesn't exist anymore since the DA_OLD_QUIRKS option 2004-04-19 13:38:10 +00:00
coda
compat Correct the AT_DISPATCH_LEVEL() macro to match earlier changes. 2004-04-20 02:27:38 +00:00
conf Remove an extra line that crept in. 2004-04-20 15:42:16 +00:00
contrib Remove warnings from vendor files. This takes some files off the vendor 2004-04-14 18:12:29 +00:00
crypto
ddb
dev Fix the problems people have been having with the Intel 2100B Centrino 2004-04-21 02:29:28 +00:00
fs
geom - Don't check if 'gp' is non-NULL, it always is and GEOM wants to 2004-04-20 17:07:55 +00:00
gnu
i4b
i386 Don't check for NULL, device_get_softc() always succeeds. 2004-04-21 02:10:58 +00:00
ia64 Don't check for NULL, device_get_softc() always succeeds. 2004-04-21 02:10:58 +00:00
isa Don't check for device_get_softc() returning NULL, it can't happen. 2004-04-17 10:25:04 +00:00
isofs/cd9660
kern 1. Remove callout_stop binary compatibility. 2004-04-20 15:49:31 +00:00
libkern
modules Divide the drivers into essential (pci, thermal) and mobile (lid, 2004-04-21 02:16:07 +00:00
net Fix the initial check for NULL arguments in rtfree (previously 2004-04-20 07:04:47 +00:00
net80211
netatalk
netatm
netgraph + rename and document an unused field in struct arpcom (field is still 2004-04-18 01:15:32 +00:00
netinet Fix a typo in a comment. 2004-04-20 19:04:24 +00:00
netinet6 ifp has the same value as rt->rti_ifp so remove the dependency 2004-04-19 08:02:52 +00:00
netipsec Fix a debugging printf snafu. 2004-04-20 14:53:35 +00:00
netipx
netkey
netnatm
netncp
netsmb
nfs
nfs4client
nfsclient Let the NFS client notice a file's size changing as a modification. 2004-04-14 23:23:55 +00:00
nfsserver
opencrypto
pc98
pccard
pci Add support for the AMD 8111. 2004-04-20 13:36:44 +00:00
posix4
powerpc MFamd64 2004-04-18 08:10:04 +00:00
rpc
security
sparc64
sys 1. Remove callout_stop binary compatibility. 2004-04-20 15:49:31 +00:00
tools Correct $FreeBSD$ style. 2004-04-16 05:22:11 +00:00
ufs
vm
Makefile