Merge tag 'powerpc-4.14-1' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc...
[linux-2.6-microblaze.git] / arch / powerpc / platforms / powernv / npu-dma.c
index 4c7b859..2cb6cbe 100644 (file)
@@ -545,6 +545,12 @@ static void mmio_invalidate(struct npu_context *npu_context, int va,
        struct mmio_atsd_reg mmio_atsd_reg[NV_MAX_NPUS];
        unsigned long pid = npu_context->mm->context.id;
 
+       /*
+        * Unfortunately the nest mmu does not support flushing specific
+        * addresses so we have to flush the whole mm.
+        */
+       flush_tlb_mm(npu_context->mm);
+
        /*
         * Loop over all the NPUs this process is active on and launch
         * an invalidate.
@@ -576,12 +582,6 @@ static void mmio_invalidate(struct npu_context *npu_context, int va,
                }
        }
 
-       /*
-        * Unfortunately the nest mmu does not support flushing specific
-        * addresses so we have to flush the whole mm.
-        */
-       flush_tlb_mm(npu_context->mm);
-
        mmio_invalidate_wait(mmio_atsd_reg, flush);
        if (flush)
                /* Wait for the flush to complete */