Date: Fri, 27 Jun 2003 23:21:39 -0600 From: "Justin T. Gibbs" <gibbs@scsiguy.com> To: Scott Long <scottl@FreeBSD.org>, Nate Lawson <nate@root.org> Cc: cvs-all@FreeBSD.org Subject: Re: cvs commit: src/sys/alpha/alpha busdma_machdep.c src/sys/i386/i386 busdma_machdep.c src/sys/ia64/ia64 busdma_machdep.c src/sys/powerpc/powerpc busdma_machdep.c Message-ID: <2573680000.1056777699@aslan.scsiguy.com> In-Reply-To: <3EFC7E7C.4030000@freebsd.org> References: <20030627083158.E946C37B4A6@hub.freebsd.org> <20030627091203.B76929@root.org> <3EFC7E7C.4030000@freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
>>> @@ -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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?2573680000.1056777699>