s390/pci_dma: split dma_update_trans
authorSebastian Ott <sebott@linux.vnet.ibm.com>
Mon, 5 Sep 2016 15:49:17 +0000 (17:49 +0200)
committerMartin Schwidefsky <schwidefsky@de.ibm.com>
Thu, 22 Sep 2016 11:42:33 +0000 (13:42 +0200)
commit1f166e9e5c7cd5d1fe2a5da7c97c1688d4c93fbb
tree0a5adec49f7b5b798c197cb3cc1dc92cb401b6fe
parentee877b81c6b92c190e7186c1ffd054804b426c02
s390/pci_dma: split dma_update_trans

Split dma_update_trans into __dma_update_trans which handles updating
the dma translation tables and __dma_purge_tlb which takes care of
purging associated entries in the dma translation lookaside buffer.

The map_sg API makes use of this split approach by calling
__dma_update_trans once per physically contiguous address range but
__dma_purge_tlb only once per dma contiguous address range.

This results in less invocations of the expensive RPCIT instruction
when using map_sg.

Signed-off-by: Sebastian Ott <sebott@linux.vnet.ibm.com>
Reviewed-by: Gerald Schaefer <gerald.schaefer@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
arch/s390/pci/pci_dma.c