Date: Wed, 21 Apr 2004 12:32:16 +0300 From: Niki Denev <nike_d@cytexbg.com> To: Bill Paul <wpaul@FreeBSD.org> Cc: cvs-src@FreeBSD.org Subject: Re: cvs commit: src/sys/dev/if_ndis if_ndis.c Message-ID: <cone.1082539936.980810.569.1001@phobos.totalterror.net> References: <200404210229.i3L2TSes070256@repoman.freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
This is a MIME GnuPG-signed message. If you see this text, it means that your E-mail or Usenet software does not support MIME signed messages. --=_mimegpg-phobos.totalterror.net-569-1082539936-0001 Content-Type: text/plain; format=flowed; charset="US-ASCII" Content-Disposition: inline Content-Transfer-Encoding: 7bit Bill Paul writes: > wpaul 2004/04/20 19:29:28 PDT > > FreeBSD src repository > > Modified files: > sys/dev/if_ndis if_ndis.c > Log: > 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@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/cvs-src > To unsubscribe, send any mail to "cvs-src-unsubscribe@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? --niki --=_mimegpg-phobos.totalterror.net-569-1082539936-0001 Content-Type: application/pgp-signature Content-Transfer-Encoding: 7bit -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (FreeBSD) iD8DBQBAhj+hHNAJ/fLbfrkRAjAiAJ91IjPBvkcD7kFrPOsyNrA0XzRe0wCdEJbg 8BNGP+lusBHZYnh+1VYknXk= =aTDZ -----END PGP SIGNATURE----- --=_mimegpg-phobos.totalterror.net-569-1082539936-0001--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?cone.1082539936.980810.569.1001>