From owner-cvs-src@FreeBSD.ORG Thu Jun 26 06:27:45 2003 Return-Path: Delivered-To: cvs-src@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 9780837B401; Thu, 26 Jun 2003 06:27:45 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 339B743FAF; Thu, 26 Jun 2003 06:27:45 -0700 (PDT) (envelope-from mux@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.6/8.12.6) with ESMTP id h5QDRj0U072341; Thu, 26 Jun 2003 06:27:45 -0700 (PDT) (envelope-from mux@repoman.freebsd.org) Received: (from mux@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h5QDRiuh072340; Thu, 26 Jun 2003 06:27:44 -0700 (PDT) Message-Id: <200306261327.h5QDRiuh072340@repoman.freebsd.org> From: Maxime Henrion Date: Thu, 26 Jun 2003 06:27:44 -0700 (PDT) To: src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org X-FreeBSD-CVS-Branch: HEAD Subject: cvs commit: src/sys/dev/ep if_ep.c X-BeenThere: cvs-src@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: CVS commit messages for the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 26 Jun 2003 13:27:46 -0000 mux 2003/06/26 06:27:44 PDT FreeBSD src repository Modified files: sys/dev/ep if_ep.c Log: 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