Skip site navigation (1)Skip section navigation (2)
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>