cvs commit: src/sys/compat/ndis kern_ndis.c src/sys/dev/if_ndis
if_ndis.c
Bill Paul
wpaul at FreeBSD.org
Thu Apr 22 00:08:39 PDT 2004
wpaul 2004/04/22 00:08:39 PDT
FreeBSD src repository
Modified files:
sys/compat/ndis kern_ndis.c
sys/dev/if_ndis if_ndis.c
Log:
Ok, _really_ fix the Intel 2100B Centrino deadlock problems this time.
(I hope.)
My original instinct to make ndis_return_packet() asynchronous was correct.
Making ndis_rxeof() submit packets to the stack asynchronously fixes
one recursive spinlock acquisition, but it's also possible for it to
happen via the ndis_txeof() path too. So:
- In if_ndis.c, revert ndis_rxeof() to its old behavior (and don't bother
putting ndis_rxeof_serial() back since we don't need it anymore).
- In kern_ndis.c, make ndis_return_packet() submit the call to the
MiniportReturnPacket() function to the "ndis swi" thread so that
it always happens in another context no matter who calls it.
Revision Changes Path
1.53 +27 -12 src/sys/compat/ndis/kern_ndis.c
1.55 +3 -29 src/sys/dev/if_ndis/if_ndis.c
More information about the cvs-src
mailing list