cvs commit: src/sys/dev/if_ndis if_ndis.c

Niki Denev 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 
>   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 at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/cvs-src
> 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?

--niki

-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
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 mailing list