swiotlb-xen: simplify cache maintainance
authorChristoph Hellwig <hch@lst.de>
Thu, 5 Sep 2019 08:04:30 +0000 (10:04 +0200)
committerChristoph Hellwig <hch@lst.de>
Wed, 11 Sep 2019 10:43:27 +0000 (12:43 +0200)
commitb4dca1512941aa8fec33c28939abc2bba4a2c78c
treea4ab4e27ee90a9526cd14d97da94b198d342970b
parentc9b6180dbf9ab3fef15ec5482997c99b0c762cd1
swiotlb-xen: simplify cache maintainance

Now that we know we always have the dma-noncoherent.h helpers available
if we are on an architecture with support for non-coherent devices,
we can just call them directly, and remove the calls to the dma-direct
routines, including the fact that we call the dma_direct_map_page
routines but ignore the value returned from it.  Instead we now have
Xen wrappers for the arch_sync_dma_for_{device,cpu} helpers that call
the special Xen versions of those routines for foreign pages.

Note that the new helpers get the physical address passed in addition
to the dma address to avoid another translation for the local cache
maintainance.  The pfn_valid checks remain on the dma address as in
the old code, even if that looks a little funny.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
Acked-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
arch/arm/xen/mm.c
arch/x86/include/asm/xen/page-coherent.h
drivers/xen/swiotlb-xen.c
include/xen/arm/page-coherent.h
include/xen/swiotlb-xen.h