diff options
author | wpaul <wpaul@FreeBSD.org> | 2004-04-22 07:08:39 +0000 |
---|---|---|
committer | wpaul <wpaul@FreeBSD.org> | 2004-04-22 07:08:39 +0000 |
commit | 6bc1da1c05748794ddfba4b35ad43a0752b9d9ce (patch) | |
tree | d7c8788b2df34a961795a4183df16cf79dd6cf16 /lib/libc | |
parent | ea882c9688f650396d1f4b076c564a13bb55b025 (diff) | |
download | FreeBSD-src-6bc1da1c05748794ddfba4b35ad43a0752b9d9ce.zip FreeBSD-src-6bc1da1c05748794ddfba4b35ad43a0752b9d9ce.tar.gz |
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.
Diffstat (limited to 'lib/libc')
0 files changed, 0 insertions, 0 deletions