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);
>  }
>  
> 

Reply via email to