cvs commit: src/sys/dev/if_ndis if_ndis.c
nike_d at cytexbg.com
Wed Apr 21 02:32:21 PDT 2004
Bill Paul writes:
> wpaul 2004/04/20 19:29:28 PDT
> FreeBSD src repository
> Modified files:
> sys/dev/if_ndis if_ndis.c
> 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.
> Revision Changes Path
> 1.54 +19 -107 src/sys/dev/if_ndis/if_ndis.c
> cvs-src at freebsd.org mailing list
> To unsubscribe, send any mail to "cvs-src-unsubscribe at freebsd.org"
doesn't seem to help here.... i got exactly the same lockup after the first
packets transmitted/recvd over the wireless as before...
the machine is ibm tp X31, with the above mentioned centrino wireless mini
pci card, and -current as from 1-2 hours ago.
is there any info that i can provide, to help on this?
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Size: 187 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/cvs-src/attachments/20040421/41d8f76b/attachment.bin
More information about the cvs-src