Date: Thu, 26 Jun 2003 10:14:28 -0700 (PDT) From: Nate Lawson <nate@root.org> To: Maxime Henrion <mux@FreeBSD.org> Cc: cvs-all@FreeBSD.org Subject: Re: cvs commit: src/sys/dev/ep if_ep.c Message-ID: <20030626101347.F74937@root.org> In-Reply-To: <20030626132750.0BEB537B490@hub.freebsd.org> References: <20030626132750.0BEB537B490@hub.freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, 26 Jun 2003, Maxime Henrion wrote: > 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 > > Revision Changes Path > 1.115 +5 -7 src/sys/dev/ep/if_ep.c Nice debugging! (bus(9) for this driver coming soon? :) -Nate
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20030626101347.F74937>