svn commit: r185108 - head/sys/dev/dcons
Marius Strobl
marius at FreeBSD.org
Wed Nov 19 14:09:04 PST 2008
Author: marius
Date: Wed Nov 19 22:09:03 2008
New Revision: 185108
URL: http://svn.freebsd.org/changeset/base/185108
Log:
Given that the buffer dcons_crom(4) exposes is used for both input
and output, set BUS_DMA_COHERENT when creating the DMA map used for
loading the buffer. As a side-effect this solves locking issues on
sparc64 when dcons(4) calls bus_dmamap_sync(9) while in an interrupt
filter, which are executed in a critical section, and iommu(4) has
to use a sleep lock when taking advantage of the streaming buffer.
Reported and tested by: kensmith
Approved by: simokawa
Modified:
head/sys/dev/dcons/dcons_crom.c
Modified: head/sys/dev/dcons/dcons_crom.c
==============================================================================
--- head/sys/dev/dcons/dcons_crom.c Wed Nov 19 21:12:26 2008 (r185107)
+++ head/sys/dev/dcons/dcons_crom.c Wed Nov 19 22:09:03 2008 (r185108)
@@ -229,7 +229,7 @@ dcons_crom_attach(device_t dev)
/*lockarg*/&Giant,
#endif
&sc->dma_tag);
- bus_dmamap_create(sc->dma_tag, 0, &sc->dma_map);
+ bus_dmamap_create(sc->dma_tag, BUS_DMA_COHERENT, &sc->dma_map);
bus_dmamap_load(sc->dma_tag, sc->dma_map,
(void *)dcons_conf->buf, dcons_conf->size,
dmamap_cb, sc, 0);
More information about the svn-src-all
mailing list