cvs commit: src/sys/alpha/alpha busdma_machdep.csrc/sys/i386/i386
src/sys/powerpc/powerpc busdma_machdep.c
Scott Long
scottl at freebsd.org
Fri Jun 27 10:30:42 PDT 2003
Nate Lawson wrote:
> 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
>
Yes, calling with a NULL mutex would be allowed and would behave as
expected.
There has been some late-breaking objection to this work, so we'll see
where it heads.
Scott
More information about the cvs-src
mailing list