From: Paul Durrant Date: Fri, 12 Oct 2018 14:57:35 +0000 (+0100) Subject: Export swiotlb_map/unmap_single X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=1cd8cf33cd97b3bd904807e49e824cba9e3ed022;p=people%2Fpauldu%2Flinux.git Export swiotlb_map/unmap_single Signed-off-by: Paul Durrant --- diff --git a/include/linux/swiotlb.h b/include/linux/swiotlb.h index 965be92c33b5..850618d68c7f 100644 --- a/include/linux/swiotlb.h +++ b/include/linux/swiotlb.h @@ -80,6 +80,14 @@ extern void swiotlb_unmap_page(struct device *hwdev, dma_addr_t dev_addr, size_t size, enum dma_data_direction dir, unsigned long attrs); +extern phys_addr_t swiotlb_map_single(struct device *hwdev, + phys_addr_t phys, size_t size, + enum dma_data_direction dir, + unsigned long attrs); +extern void swiotlb_unmap_single(struct device *hwdev, dma_addr_t dev_addr, + size_t size, enum dma_data_direction dir, + unsigned long attrs); + extern int swiotlb_map_sg_attrs(struct device *hwdev, struct scatterlist *sgl, int nelems, enum dma_data_direction dir, diff --git a/kernel/dma/swiotlb.c b/kernel/dma/swiotlb.c index 4f8a6dbf0b60..3e23c33c6d4a 100644 --- a/kernel/dma/swiotlb.c +++ b/kernel/dma/swiotlb.c @@ -593,9 +593,9 @@ found: /* * Allocates bounce buffer and returns its physical address. */ -static phys_addr_t -map_single(struct device *hwdev, phys_addr_t phys, size_t size, - enum dma_data_direction dir, unsigned long attrs) +phys_addr_t +swiotlb_map_single(struct device *hwdev, phys_addr_t phys, size_t size, + enum dma_data_direction dir, unsigned long attrs) { dma_addr_t start_dma_addr; @@ -816,7 +816,7 @@ dma_addr_t swiotlb_map_page(struct device *dev, struct page *page, trace_swiotlb_bounced(dev, dev_addr, size, swiotlb_force); /* Oh well, have to allocate and map a bounce buffer. */ - map = map_single(dev, phys, size, dir, attrs); + map = swiotlb_map_single(dev, phys, size, dir, attrs); if (map == SWIOTLB_MAP_ERROR) { swiotlb_full(dev, size, dir, 1); return __phys_to_dma(dev, io_tlb_overflow_buffer); @@ -842,9 +842,9 @@ dma_addr_t swiotlb_map_page(struct device *dev, struct page *page, * After this call, reads by the cpu to the buffer are guaranteed to see * whatever the device wrote there. */ -static void unmap_single(struct device *hwdev, dma_addr_t dev_addr, - size_t size, enum dma_data_direction dir, - unsigned long attrs) +void swiotlb_unmap_single(struct device *hwdev, dma_addr_t dev_addr, + size_t size, enum dma_data_direction dir, + unsigned long attrs) { phys_addr_t paddr = dma_to_phys(hwdev, dev_addr); @@ -871,7 +871,7 @@ void swiotlb_unmap_page(struct device *hwdev, dma_addr_t dev_addr, size_t size, enum dma_data_direction dir, unsigned long attrs) { - unmap_single(hwdev, dev_addr, size, dir, attrs); + swiotlb_unmap_single(hwdev, dev_addr, size, dir, attrs); } /* @@ -949,8 +949,9 @@ swiotlb_map_sg_attrs(struct device *hwdev, struct scatterlist *sgl, int nelems, if (swiotlb_force == SWIOTLB_FORCE || !dma_capable(hwdev, dev_addr, sg->length)) { - phys_addr_t map = map_single(hwdev, sg_phys(sg), - sg->length, dir, attrs); + phys_addr_t map = + swiotlb_map_single(hwdev, sg_phys(sg), + sg->length, dir, attrs); if (map == SWIOTLB_MAP_ERROR) { /* Don't panic here, we expect map_sg users to do proper error handling. */ @@ -984,8 +985,8 @@ swiotlb_unmap_sg_attrs(struct device *hwdev, struct scatterlist *sgl, BUG_ON(dir == DMA_NONE); for_each_sg(sgl, sg, nelems, i) - unmap_single(hwdev, sg->dma_address, sg_dma_len(sg), dir, - attrs); + swiotlb_unmap_single(hwdev, sg->dma_address, + sg_dma_len(sg), dir, attrs); } /*