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. For ep.c, you need the following or newer 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: michReceived on Fri Jul 04 2003 - 04:04:50 UTC
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:37:13 UTC