From owner-cvs-src@FreeBSD.ORG Fri Jun 27 22:31:41 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 0399437B401; Fri, 27 Jun 2003 22:31:41 -0700 (PDT) Received: from magic.adaptec.com (magic-mail.adaptec.com [208.236.45.100]) by mx1.FreeBSD.org (Postfix) with ESMTP id 3449644015; Fri, 27 Jun 2003 22:31:39 -0700 (PDT) (envelope-from scottl@freebsd.org) Received: from redfish.adaptec.com (redfish.adaptec.com [162.62.50.11]) by magic.adaptec.com (8.11.6/8.11.6) with ESMTP id h5S5Ul831475; Fri, 27 Jun 2003 22:30:47 -0700 Received: from freebsd.org (hollin.btc.adaptec.com [10.100.253.56]) by redfish.adaptec.com (8.8.8p2+Sun/8.8.8) with ESMTP id WAA03856; Fri, 27 Jun 2003 22:31:37 -0700 (PDT) Message-ID: <3EFD2825.6080700@freebsd.org> Date: Fri, 27 Jun 2003 23:31:17 -0600 From: Scott Long User-Agent: Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.3) Gecko/20030425 X-Accept-Language: en-us, en MIME-Version: 1.0 To: "Justin T. Gibbs" References: <20030627083158.E946C37B4A6@hub.freebsd.org> <20030627091203.B76929@root.org> <3EFC7E7C.4030000@freebsd.org> <2573680000.1056777699@aslan.scsiguy.com> In-Reply-To: <2573680000.1056777699@aslan.scsiguy.com> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit cc: cvs-src@freebsd.org cc: src-committers@freebsd.org cc: cvs-all@freebsd.org cc: Nate Lawson Subject: Re: cvs commit: src/sys/alpha/alpha busdma_machdep.csrc/sys/i386/i386 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: Sat, 28 Jun 2003 05:31:41 -0000 Justin T. Gibbs wrote: >>>>@@ -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 >>> >> >>Yes, calling with a NULL mutex would be allowed and would behave as >>expected. > > > Does this code run without giant? If not, shouldn't it be dropping giant > upon calling what should be an MP safe client? If so, doesn't it need > to pick up giant in for the non-MP safe clients? > > -- > Justin > > Ah, good point. For all but ia64, some attempt has been made to make the swi be MPSAFE. I'll look into it. Scott