svn commit: r290219 - head/sys/mips/mips

Adrian Chadd adrian at freebsd.org
Sat Oct 31 00:31:38 UTC 2015


patch from: ian

sorry ian!


-a


On 30 October 2015 at 17:29, Adrian Chadd <adrian at freebsd.org> wrote:
> Author: adrian
> Date: Sat Oct 31 00:29:26 2015
> New Revision: 290219
> URL: https://svnweb.freebsd.org/changeset/base/290219
>
> Log:
>   mips: do mips_sync() on sync operations to uncachable memory.
>
>   mips24k/mips74k document that we need an explicit SYNC so to order
>   things correctly, even with access to uncachable memory.
>   We were doing calls to SYNC in the cache ops (inv, wbinv) but we
>   weren't doing it for uncachable memory.
>
> Modified:
>   head/sys/mips/mips/busdma_machdep.c
>
> Modified: head/sys/mips/mips/busdma_machdep.c
> ==============================================================================
> --- head/sys/mips/mips/busdma_machdep.c Sat Oct 31 00:04:44 2015        (r290218)
> +++ head/sys/mips/mips/busdma_machdep.c Sat Oct 31 00:29:26 2015        (r290219)
> @@ -1220,11 +1220,12 @@ _bus_dmamap_sync(bus_dma_tag_t dmat, bus
>         if (STAILQ_FIRST(&map->bpages))
>                 _bus_dmamap_sync_bp(dmat, map, op);
>
> -       if (dmat->flags & BUS_DMA_COHERENT)
> -               return;
> -
> -       if (map->flags & DMAMAP_UNCACHEABLE)
> +       if ((dmat->flags & BUS_DMA_COHERENT) ||
> +           (map->flags & DMAMAP_UNCACHEABLE)) {
> +               if (op & BUS_DMASYNC_PREWRITE)
> +                       mips_sync();
>                 return;
> +       }
>
>         aligned = (map->flags & DMAMAP_CACHE_ALIGNED) ? 1 : 0;
>
>


More information about the svn-src-head mailing list