Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 27 Jun 2003 23:31:17 -0600
From:      Scott Long <scottl@freebsd.org>
To:        "Justin T. Gibbs" <gibbs@scsiguy.com>
Cc:        Nate Lawson <nate@root.org>
Subject:   Re: cvs commit: src/sys/alpha/alpha busdma_machdep.csrc/sys/i386/i386 src/sys/powerpc/powerpc busdma_machdep.c
Message-ID:  <3EFD2825.6080700@freebsd.org>
In-Reply-To: <2573680000.1056777699@aslan.scsiguy.com>
References:  <20030627083158.E946C37B4A6@hub.freebsd.org> <20030627091203.B76929@root.org> <3EFC7E7C.4030000@freebsd.org> <2573680000.1056777699@aslan.scsiguy.com>

next in thread | previous in thread | raw e-mail | index | archive | help
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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3EFD2825.6080700>