From owner-cvs-src@FreeBSD.ORG Fri Jun 27 09:13:36 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 3F8DE37B401 for ; Fri, 27 Jun 2003 09:13:36 -0700 (PDT) Received: from rootlabs.com (root.org [67.118.192.226]) by mx1.FreeBSD.org (Postfix) with SMTP id D019043FD7 for ; Fri, 27 Jun 2003 09:13:34 -0700 (PDT) (envelope-from nate@rootlabs.com) Received: (qmail 76938 invoked by uid 1000); 27 Jun 2003 16:13:35 -0000 Date: Fri, 27 Jun 2003 09:13:35 -0700 (PDT) From: Nate Lawson To: Scott Long In-Reply-To: <20030627083158.E946C37B4A6@hub.freebsd.org> Message-ID: <20030627091203.B76929@root.org> References: <20030627083158.E946C37B4A6@hub.freebsd.org> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII cc: cvs-src@FreeBSD.org cc: src-committers@FreeBSD.org cc: cvs-all@FreeBSD.org Subject: Re: cvs commit: src/sys/alpha/alpha busdma_machdep.csrc/sys/i386/i386 busdma_machdep.c src/sys/ia64/ia64 busdma_machdep.c src/sys/powerpc/powerpc busdma_machdep.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: Fri, 27 Jun 2003 16:13:37 -0000 On Fri, 27 Jun 2003, Scott Long wrote: > Do the first and mostly mechanical step of adding mutex support to the > bus_dma async callback scheme. Note that sparc64 does not seem to do > async callbacks. Note that ia64 callbacks might not be MPSAFE at the > moment. Note that powerpc doesn't seem to do async callbacks due to > the implementation being incomplete. > > Reviewed by: mostly silence on arch@ > > Revision Changes Path > 1.39 +5 -0 src/sys/alpha/alpha/busdma_machdep.c > 1.47 +5 -0 src/sys/i386/i386/busdma_machdep.c > 1.25 +5 -0 src/sys/ia64/ia64/busdma_machdep.c > 1.16 +1 -0 src/sys/powerpc/powerpc/busdma_machdep.c > > @@ -931,8 +932,12 @@ > while ((map = STAILQ_FIRST(&bounce_map_callbacklist)) != NULL) { > STAILQ_REMOVE_HEAD(&bounce_map_callbacklist, links); > mtx_unlock(&bounce_lock); > + if (map->callback_mtx != NULL) > + mtx_lock(map->callback_mtx); > bus_dmamap_load(map->dmat, map, map->buf, map->buflen, > map->callback, map->callback_arg, /*flags*/0); > + if (map->callback_mtx != NULL) > + mtx_unlock(map->callback_mtx); > mtx_lock(&bounce_lock); > } > mtx_unlock(&bounce_lock); Good to see you working on this area. Why would callback_mtx be null? If it is null, is it safe to call the function without the lock held? -Nate