On Sun, Mar 06, 2016 at 12:53:24PM +0100, Tobias Ulmer wrote:
> map is passed straight into free where it gets overwritten with junk.
> No other arch makes map invalid before free, and my N2100 didn't
> suddenly misbehave either.
Been building base with this diff, no issues. Also it doesn't seem like
something that would throw issues. Looks reasonable to me.
>
> ok?
>
> Index: arch/arm/arm/bus_dma.c
> ===================================================================
> RCS file: /home/vcs/cvs/openbsd/src/sys/arch/arm/arm/bus_dma.c,v
> retrieving revision 1.28
> diff -u -p -r1.28 bus_dma.c
> --- arch/arm/arm/bus_dma.c 16 Nov 2014 12:30:56 -0000 1.28
> +++ arch/arm/arm/bus_dma.c 6 Mar 2016 11:34:35 -0000
> @@ -164,15 +164,6 @@ _bus_dmamap_destroy(bus_dma_tag_t t, bus
> printf("dmamap_destroy: t=%p map=%p\n", t, map);
> #endif /* DEBUG_DMA */
>
> - /*
> - * Explicit unload.
> - */
> - map->dm_mapsize = 0;
> - map->dm_nsegs = 0;
> - map->_dm_origbuf = NULL;
> - map->_dm_buftype = ARM32_BUFTYPE_INVALID;
> - map->_dm_proc = NULL;
> -
> free(map, M_DEVBUF, 0);
> }
>
>