| Message ID | 1502432577-5911-1-git-send-email-alistair@popple.id.au (mailing list archive) |
|---|---|
| State | Accepted |
| Commit | bab9f954aaf352127725a9b7920226abdb65b604 |
| Headers | show |
On Fri, 2017-08-11 at 06:22:56 UTC, Alistair Popple wrote: > 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. > > Signed-off-by: Alistair Popple <alistair@popple.id.au> > Cc: stable@vger.kernel.org Applied to powerpc next, thanks. https://git.kernel.org/powerpc/c/bab9f954aaf352127725a9b7920226 cheers
diff --git a/arch/powerpc/platforms/powernv/npu-dma.c b/arch/powerpc/platforms/powernv/npu-dma.c index b5d960d..3d4f879 100644 --- 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_context *npu_context, int va, 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 */
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. Signed-off-by: Alistair Popple <alistair@popple.id.au> Cc: stable@vger.kernel.org --- arch/powerpc/platforms/powernv/npu-dma.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-)