Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/sys/arch Update the dmamp argument only when the allocation ...
details: https://anonhg.NetBSD.org/src/rev/668168976eab
branches: trunk
changeset: 350123:668168976eab
user: msaitoh <msaitoh%NetBSD.org@localhost>
date: Thu Jan 05 09:08:44 2017 +0000
description:
Update the dmamp argument only when the allocation succeeded.
diffstat:
sys/arch/arm/arm32/bus_dma.c | 11 ++++++-----
sys/arch/x86/x86/bus_dma.c | 12 +++++++-----
2 files changed, 13 insertions(+), 10 deletions(-)
diffs (97 lines):
diff -r 476b6e4e9a52 -r 668168976eab sys/arch/arm/arm32/bus_dma.c
--- a/sys/arch/arm/arm32/bus_dma.c Thu Jan 05 07:53:20 2017 +0000
+++ b/sys/arch/arm/arm32/bus_dma.c Thu Jan 05 09:08:44 2017 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: bus_dma.c,v 1.97 2016/12/23 07:15:27 cherry Exp $ */
+/* $NetBSD: bus_dma.c,v 1.98 2017/01/05 09:08:45 msaitoh Exp $ */
/*-
* Copyright (c) 1996, 1997, 1998 The NetBSD Foundation, Inc.
@@ -35,7 +35,7 @@
#include "opt_arm_bus_space.h"
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: bus_dma.c,v 1.97 2016/12/23 07:15:27 cherry Exp $");
+__KERNEL_RCSID(0, "$NetBSD: bus_dma.c,v 1.98 2017/01/05 09:08:45 msaitoh Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -361,8 +361,6 @@
map->dm_mapsize = 0; /* no valid mappings */
map->dm_nsegs = 0;
- *dmamp = map;
-
#ifdef _ARM32_NEED_BUS_DMA_BOUNCE
struct arm32_bus_dma_cookie *cookie;
int cookieflags;
@@ -382,6 +380,7 @@
if ((cookieflags & _BUS_DMA_MIGHT_NEED_BOUNCE) == 0) {
STAT_INCR(creates);
+ *dmamp = map;
return 0;
}
@@ -404,10 +403,12 @@
out:
if (error)
_bus_dmamap_destroy(t, map);
+ else
+ *dmamp = map;
#else
+ *dmamp = map;
STAT_INCR(creates);
#endif /* _ARM32_NEED_BUS_DMA_BOUNCE */
-
#ifdef DEBUG_DMA
printf("dmamap_create:map=%p\n", map);
#endif /* DEBUG_DMA */
diff -r 476b6e4e9a52 -r 668168976eab sys/arch/x86/x86/bus_dma.c
--- a/sys/arch/x86/x86/bus_dma.c Thu Jan 05 07:53:20 2017 +0000
+++ b/sys/arch/x86/x86/bus_dma.c Thu Jan 05 09:08:44 2017 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: bus_dma.c,v 1.74 2015/10/27 18:49:26 christos Exp $ */
+/* $NetBSD: bus_dma.c,v 1.75 2017/01/05 09:08:44 msaitoh Exp $ */
/*-
* Copyright (c) 1996, 1997, 1998, 2007 The NetBSD Foundation, Inc.
@@ -31,7 +31,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: bus_dma.c,v 1.74 2015/10/27 18:49:26 christos Exp $");
+__KERNEL_RCSID(0, "$NetBSD: bus_dma.c,v 1.75 2017/01/05 09:08:44 msaitoh Exp $");
/*
* The following is included because _bus_dma_uiomove is derived from
@@ -306,8 +306,6 @@
map->dm_mapsize = 0; /* no valid mappings */
map->dm_nsegs = 0;
- *dmamp = map;
-
if (t->_bounce_thresh == 0 || _BUS_AVAIL_END <= t->_bounce_thresh)
map->_dm_bounce_thresh = 0;
cookieflags = 0;
@@ -321,8 +319,10 @@
if (map->_dm_bounce_thresh != 0)
cookieflags |= X86_DMA_MIGHT_NEED_BOUNCE;
- if ((cookieflags & X86_DMA_MIGHT_NEED_BOUNCE) == 0)
+ if ((cookieflags & X86_DMA_MIGHT_NEED_BOUNCE) == 0) {
+ *dmamp = map;
return 0;
+ }
cookiesize = sizeof(struct x86_bus_dma_cookie) +
(sizeof(bus_dma_segment_t) * map->_dm_segcnt);
@@ -343,6 +343,8 @@
out:
if (error)
_bus_dmamap_destroy(t, map);
+ else
+ *dmamp = map;
return (error);
}
Home |
Main Index |
Thread Index |
Old Index