"M. Warner Losh" writes: > In message: <200307041246.h64Cku8E042346_at_grimreaper.grondar.org> > Mark Murray <mark_at_grondar.org> writes: > : "M. Warner Losh" writes: > : > Have you gotten all of the recent changes to current wrt ep0? It was > : > broken by my making cbbintr mpsafe. Well, it was broken a long time > : > ago, my change just opened a race that used to be won, but now is > : > lost. > : > : Yup. I believe so, but please confirm where the change was to be sure? > > There were two changes. One is in pccbb.c that makes things a MPSAFE > interrupt. You could revert to version 1.175 of pccbb.c. I'll play with that in a few hours when I get home. > For ep.c, you need the following or newer You mean if_ep.c, right? > Revision 1.115 / (download) - annotate - [select for diffs], Thu Jun > 26 13:27:44 2003 UTC (7 days, 23 hours ago) by mux > Changes since 1.114: +5 -7 lines > > Fix a race condition that was introduced since pccbb interrupts are > flag'ed INTR_MPSAFE. In ep_if_start(), use the IF_DEQUEUE macro to > grab the next mbuf to send, and use IF_PREPEND if the card is busy > and we actually can't handle it right now. > > The old code was first getting the mbuf by taking it from the queue > without using the macros, thus without locking, and without removing > it from the queue either. It was later assuming that IF_DEQUEUE would > give him this same mbuf. > > Tested by: mich I played with this, but without playing with the pccbb.c stuff. I'll give it a go tonight. M -- Mark Murray iumop ap!sdn w,I idlaHReceived on Fri Jul 04 2003 - 05:28:22 UTC
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:37:13 UTC