freebsd-nq/sys/dev/if_ndis
Bill Paul b1084a1e96 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.
2004-04-22 07:08:39 +00:00
..
if_ndis_pccard.c Make if_ndis_pci.c and if_ndis_pccard.c use bus_alloc_resource() again 2004-03-21 19:56:41 +00:00
if_ndis_pci.c Make if_ndis_pci.c and if_ndis_pccard.c use bus_alloc_resource() again 2004-03-21 19:56:41 +00:00
if_ndis.c Ok, _really_ fix the Intel 2100B Centrino deadlock problems this time. 2004-04-22 07:08:39 +00:00
if_ndisvar.h Continue my efforts to imitate Windows as closely as possible by 2004-04-14 07:48:03 +00:00