svn commit: r251860 - stable/9/sys/mips/mips
Scott Long
scottl at FreeBSD.org
Mon Jun 17 19:45:27 UTC 2013
Author: scottl
Date: Mon Jun 17 19:45:27 2013
New Revision: 251860
URL: http://svnweb.freebsd.org/changeset/base/251860
Log:
MFC r242465:
Free the dma map -after- it's checked, not before. Or you'll be
potentially referencing already-freed memory.
MFC r242466:
Drop this from 500 to 128, to save a little space on memory constrained
platforms.
Submitted by: adrian
Obtained from: Netflix
Modified:
stable/9/sys/mips/mips/busdma_machdep.c
Directory Properties:
stable/9/sys/ (props changed)
Modified: stable/9/sys/mips/mips/busdma_machdep.c
==============================================================================
--- stable/9/sys/mips/mips/busdma_machdep.c Mon Jun 17 19:31:03 2013 (r251859)
+++ stable/9/sys/mips/mips/busdma_machdep.c Mon Jun 17 19:45:27 2013 (r251860)
@@ -152,7 +152,7 @@ static STAILQ_HEAD(, bus_dmamap) bounce_
static TAILQ_HEAD(,bus_dmamap) dmamap_freelist =
TAILQ_HEAD_INITIALIZER(dmamap_freelist);
-#define BUSDMA_STATIC_MAPS 500
+#define BUSDMA_STATIC_MAPS 128
static struct bus_dmamap map_pool[BUSDMA_STATIC_MAPS];
static struct mtx busdma_mtx;
@@ -533,7 +533,6 @@ int
bus_dmamap_destroy(bus_dma_tag_t dmat, bus_dmamap_t map)
{
- _busdma_free_dmamap(map);
if (STAILQ_FIRST(&map->bpages) != NULL) {
CTR3(KTR_BUSDMA, "%s: tag %p error %d",
__func__, dmat, EBUSY);
@@ -542,6 +541,7 @@ bus_dmamap_destroy(bus_dma_tag_t dmat, b
if (dmat->bounce_zone)
dmat->bounce_zone->map_count--;
dmat->map_count--;
+ _busdma_free_dmamap(map);
CTR2(KTR_BUSDMA, "%s: tag %p error 0", __func__, dmat);
return (0);
}
More information about the svn-src-all
mailing list