aboutsummaryrefslogtreecommitdiffstats
path: root/arch/tile/kernel
diff options
context:
space:
mode:
authorKrzysztof Kozlowski <k.kozlowski@samsung.com>2016-08-03 16:46:00 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2016-08-04 08:50:07 -0400
commit00085f1efa387a8ce100e3734920f7639c80caa3 (patch)
tree41ff3d6e6884918b4fc4f1ae96a284098167c5b0 /arch/tile/kernel
parent1605d2715ad2e67ddd0485a26e05ed670a4285ca (diff)
dma-mapping: use unsigned long for dma_attrs
The dma-mapping core and the implementations do not change the DMA attributes passed by pointer. Thus the pointer can point to const data. However the attributes do not have to be a bitfield. Instead unsigned long will do fine: 1. This is just simpler. Both in terms of reading the code and setting attributes. Instead of initializing local attributes on the stack and passing pointer to it to dma_set_attr(), just set the bits. 2. It brings safeness and checking for const correctness because the attributes are passed by value. Semantic patches for this change (at least most of them): virtual patch virtual context @r@ identifier f, attrs; @@ f(..., - struct dma_attrs *attrs + unsigned long attrs , ...) { ... } @@ identifier r.f; @@ f(..., - NULL + 0 ) and // Options: --all-includes virtual patch virtual context @r@ identifier f, attrs; type t; @@ t f(..., struct dma_attrs *attrs); @@ identifier r.f; @@ f(..., - NULL + 0 ) Link: http://lkml.kernel.org/r/1468399300-5399-2-git-send-email-k.kozlowski@samsung.com Signed-off-by: Krzysztof Kozlowski <k.kozlowski@samsung.com> Acked-by: Vineet Gupta <vgupta@synopsys.com> Acked-by: Robin Murphy <robin.murphy@arm.com> Acked-by: Hans-Christian Noren Egtvedt <egtvedt@samfundet.no> Acked-by: Mark Salter <msalter@redhat.com> [c6x] Acked-by: Jesper Nilsson <jesper.nilsson@axis.com> [cris] Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch> [drm] Reviewed-by: Bart Van Assche <bart.vanassche@sandisk.com> Acked-by: Joerg Roedel <jroedel@suse.de> [iommu] Acked-by: Fabien Dessenne <fabien.dessenne@st.com> [bdisp] Reviewed-by: Marek Szyprowski <m.szyprowski@samsung.com> [vb2-core] Acked-by: David Vrabel <david.vrabel@citrix.com> [xen] Acked-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> [xen swiotlb] Acked-by: Joerg Roedel <jroedel@suse.de> [iommu] Acked-by: Richard Kuo <rkuo@codeaurora.org> [hexagon] Acked-by: Geert Uytterhoeven <geert@linux-m68k.org> [m68k] Acked-by: Gerald Schaefer <gerald.schaefer@de.ibm.com> [s390] Acked-by: Bjorn Andersson <bjorn.andersson@linaro.org> Acked-by: Hans-Christian Noren Egtvedt <egtvedt@samfundet.no> [avr32] Acked-by: Vineet Gupta <vgupta@synopsys.com> [arc] Acked-by: Robin Murphy <robin.murphy@arm.com> [arm64 and dma-iommu] Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'arch/tile/kernel')
-rw-r--r--arch/tile/kernel/pci-dma.c28
1 files changed, 14 insertions, 14 deletions
diff --git a/arch/tile/kernel/pci-dma.c b/arch/tile/kernel/pci-dma.c
index b6bc0547a4f6..09bb774b39cd 100644
--- a/arch/tile/kernel/pci-dma.c
+++ b/arch/tile/kernel/pci-dma.c
@@ -34,7 +34,7 @@
34 34
35static void *tile_dma_alloc_coherent(struct device *dev, size_t size, 35static void *tile_dma_alloc_coherent(struct device *dev, size_t size,
36 dma_addr_t *dma_handle, gfp_t gfp, 36 dma_addr_t *dma_handle, gfp_t gfp,
37 struct dma_attrs *attrs) 37 unsigned long attrs)
38{ 38{
39 u64 dma_mask = (dev && dev->coherent_dma_mask) ? 39 u64 dma_mask = (dev && dev->coherent_dma_mask) ?
40 dev->coherent_dma_mask : DMA_BIT_MASK(32); 40 dev->coherent_dma_mask : DMA_BIT_MASK(32);
@@ -78,7 +78,7 @@ static void *tile_dma_alloc_coherent(struct device *dev, size_t size,
78 */ 78 */
79static void tile_dma_free_coherent(struct device *dev, size_t size, 79static void tile_dma_free_coherent(struct device *dev, size_t size,
80 void *vaddr, dma_addr_t dma_handle, 80 void *vaddr, dma_addr_t dma_handle,
81 struct dma_attrs *attrs) 81 unsigned long attrs)
82{ 82{
83 homecache_free_pages((unsigned long)vaddr, get_order(size)); 83 homecache_free_pages((unsigned long)vaddr, get_order(size));
84} 84}
@@ -202,7 +202,7 @@ static void __dma_complete_pa_range(dma_addr_t dma_addr, size_t size,
202 202
203static int tile_dma_map_sg(struct device *dev, struct scatterlist *sglist, 203static int tile_dma_map_sg(struct device *dev, struct scatterlist *sglist,
204 int nents, enum dma_data_direction direction, 204 int nents, enum dma_data_direction direction,
205 struct dma_attrs *attrs) 205 unsigned long attrs)
206{ 206{
207 struct scatterlist *sg; 207 struct scatterlist *sg;
208 int i; 208 int i;
@@ -224,7 +224,7 @@ static int tile_dma_map_sg(struct device *dev, struct scatterlist *sglist,
224 224
225static void tile_dma_unmap_sg(struct device *dev, struct scatterlist *sglist, 225static void tile_dma_unmap_sg(struct device *dev, struct scatterlist *sglist,
226 int nents, enum dma_data_direction direction, 226 int nents, enum dma_data_direction direction,
227 struct dma_attrs *attrs) 227 unsigned long attrs)
228{ 228{
229 struct scatterlist *sg; 229 struct scatterlist *sg;
230 int i; 230 int i;
@@ -240,7 +240,7 @@ static void tile_dma_unmap_sg(struct device *dev, struct scatterlist *sglist,
240static dma_addr_t tile_dma_map_page(struct device *dev, struct page *page, 240static dma_addr_t tile_dma_map_page(struct device *dev, struct page *page,
241 unsigned long offset, size_t size, 241 unsigned long offset, size_t size,
242 enum dma_data_direction direction, 242 enum dma_data_direction direction,
243 struct dma_attrs *attrs) 243 unsigned long attrs)
244{ 244{
245 BUG_ON(!valid_dma_direction(direction)); 245 BUG_ON(!valid_dma_direction(direction));
246 246
@@ -252,7 +252,7 @@ static dma_addr_t tile_dma_map_page(struct device *dev, struct page *page,
252 252
253static void tile_dma_unmap_page(struct device *dev, dma_addr_t dma_address, 253static void tile_dma_unmap_page(struct device *dev, dma_addr_t dma_address,
254 size_t size, enum dma_data_direction direction, 254 size_t size, enum dma_data_direction direction,
255 struct dma_attrs *attrs) 255 unsigned long attrs)
256{ 256{
257 BUG_ON(!valid_dma_direction(direction)); 257 BUG_ON(!valid_dma_direction(direction));
258 258
@@ -343,7 +343,7 @@ EXPORT_SYMBOL(tile_dma_map_ops);
343 343
344static void *tile_pci_dma_alloc_coherent(struct device *dev, size_t size, 344static void *tile_pci_dma_alloc_coherent(struct device *dev, size_t size,
345 dma_addr_t *dma_handle, gfp_t gfp, 345 dma_addr_t *dma_handle, gfp_t gfp,
346 struct dma_attrs *attrs) 346 unsigned long attrs)
347{ 347{
348 int node = dev_to_node(dev); 348 int node = dev_to_node(dev);
349 int order = get_order(size); 349 int order = get_order(size);
@@ -368,14 +368,14 @@ static void *tile_pci_dma_alloc_coherent(struct device *dev, size_t size,
368 */ 368 */
369static void tile_pci_dma_free_coherent(struct device *dev, size_t size, 369static void tile_pci_dma_free_coherent(struct device *dev, size_t size,
370 void *vaddr, dma_addr_t dma_handle, 370 void *vaddr, dma_addr_t dma_handle,
371 struct dma_attrs *attrs) 371 unsigned long attrs)
372{ 372{
373 homecache_free_pages((unsigned long)vaddr, get_order(size)); 373 homecache_free_pages((unsigned long)vaddr, get_order(size));
374} 374}
375 375
376static int tile_pci_dma_map_sg(struct device *dev, struct scatterlist *sglist, 376static int tile_pci_dma_map_sg(struct device *dev, struct scatterlist *sglist,
377 int nents, enum dma_data_direction direction, 377 int nents, enum dma_data_direction direction,
378 struct dma_attrs *attrs) 378 unsigned long attrs)
379{ 379{
380 struct scatterlist *sg; 380 struct scatterlist *sg;
381 int i; 381 int i;
@@ -400,7 +400,7 @@ static int tile_pci_dma_map_sg(struct device *dev, struct scatterlist *sglist,
400static void tile_pci_dma_unmap_sg(struct device *dev, 400static void tile_pci_dma_unmap_sg(struct device *dev,
401 struct scatterlist *sglist, int nents, 401 struct scatterlist *sglist, int nents,
402 enum dma_data_direction direction, 402 enum dma_data_direction direction,
403 struct dma_attrs *attrs) 403 unsigned long attrs)
404{ 404{
405 struct scatterlist *sg; 405 struct scatterlist *sg;
406 int i; 406 int i;
@@ -416,7 +416,7 @@ static void tile_pci_dma_unmap_sg(struct device *dev,
416static dma_addr_t tile_pci_dma_map_page(struct device *dev, struct page *page, 416static dma_addr_t tile_pci_dma_map_page(struct device *dev, struct page *page,
417 unsigned long offset, size_t size, 417 unsigned long offset, size_t size,
418 enum dma_data_direction direction, 418 enum dma_data_direction direction,
419 struct dma_attrs *attrs) 419 unsigned long attrs)
420{ 420{
421 BUG_ON(!valid_dma_direction(direction)); 421 BUG_ON(!valid_dma_direction(direction));
422 422
@@ -429,7 +429,7 @@ static dma_addr_t tile_pci_dma_map_page(struct device *dev, struct page *page,
429static void tile_pci_dma_unmap_page(struct device *dev, dma_addr_t dma_address, 429static void tile_pci_dma_unmap_page(struct device *dev, dma_addr_t dma_address,
430 size_t size, 430 size_t size,
431 enum dma_data_direction direction, 431 enum dma_data_direction direction,
432 struct dma_attrs *attrs) 432 unsigned long attrs)
433{ 433{
434 BUG_ON(!valid_dma_direction(direction)); 434 BUG_ON(!valid_dma_direction(direction));
435 435
@@ -531,7 +531,7 @@ EXPORT_SYMBOL(gx_pci_dma_map_ops);
531#ifdef CONFIG_SWIOTLB 531#ifdef CONFIG_SWIOTLB
532static void *tile_swiotlb_alloc_coherent(struct device *dev, size_t size, 532static void *tile_swiotlb_alloc_coherent(struct device *dev, size_t size,
533 dma_addr_t *dma_handle, gfp_t gfp, 533 dma_addr_t *dma_handle, gfp_t gfp,
534 struct dma_attrs *attrs) 534 unsigned long attrs)
535{ 535{
536 gfp |= GFP_DMA; 536 gfp |= GFP_DMA;
537 return swiotlb_alloc_coherent(dev, size, dma_handle, gfp); 537 return swiotlb_alloc_coherent(dev, size, dma_handle, gfp);
@@ -539,7 +539,7 @@ static void *tile_swiotlb_alloc_coherent(struct device *dev, size_t size,
539 539
540static void tile_swiotlb_free_coherent(struct device *dev, size_t size, 540static void tile_swiotlb_free_coherent(struct device *dev, size_t size,
541 void *vaddr, dma_addr_t dma_addr, 541 void *vaddr, dma_addr_t dma_addr,
542 struct dma_attrs *attrs) 542 unsigned long attrs)
543{ 543{
544 swiotlb_free_coherent(dev, size, vaddr, dma_addr); 544 swiotlb_free_coherent(dev, size, vaddr, dma_addr);
545} 545}