[PATCH 4.13 041/109] powerpc/powernv/npu: Move tlb flush before launching ATSD

2017-09-24 Thread Greg Kroah-Hartman
4.13-stable review patch.  If anyone has any objections, please let me know.

--

From: Alistair Popple 

commit bab9f954aaf352127725a9b7920226abdb65b604 upstream.

The nest MMU tlb flush needs to happen before the GPU translation
shootdown is launched to avoid the GPU refilling its tlb with stale
nmmu translations prior to the nmmu flush completing.

Fixes: 1ab66d1fbada ("powerpc/powernv: Introduce address translation services 
for Nvlink2")
Signed-off-by: Alistair Popple 
Signed-off-by: Michael Ellerman 
Signed-off-by: Greg Kroah-Hartman 

---
 arch/powerpc/platforms/powernv/npu-dma.c |   12 ++--
 1 file changed, 6 insertions(+), 6 deletions(-)

--- a/arch/powerpc/platforms/powernv/npu-dma.c
+++ b/arch/powerpc/platforms/powernv/npu-dma.c
@@ -546,6 +546,12 @@ static void mmio_invalidate(struct npu_c
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_c
}
}
 
-   /*
-* 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 */




[PATCH 4.13 041/109] powerpc/powernv/npu: Move tlb flush before launching ATSD

2017-09-24 Thread Greg Kroah-Hartman
4.13-stable review patch.  If anyone has any objections, please let me know.

--

From: Alistair Popple 

commit bab9f954aaf352127725a9b7920226abdb65b604 upstream.

The nest MMU tlb flush needs to happen before the GPU translation
shootdown is launched to avoid the GPU refilling its tlb with stale
nmmu translations prior to the nmmu flush completing.

Fixes: 1ab66d1fbada ("powerpc/powernv: Introduce address translation services 
for Nvlink2")
Signed-off-by: Alistair Popple 
Signed-off-by: Michael Ellerman 
Signed-off-by: Greg Kroah-Hartman 

---
 arch/powerpc/platforms/powernv/npu-dma.c |   12 ++--
 1 file changed, 6 insertions(+), 6 deletions(-)

--- a/arch/powerpc/platforms/powernv/npu-dma.c
+++ b/arch/powerpc/platforms/powernv/npu-dma.c
@@ -546,6 +546,12 @@ static void mmio_invalidate(struct npu_c
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_c
}
}
 
-   /*
-* 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 */