diff options
author | Krzysztof Kozlowski <k.kozlowski@samsung.com> | 2016-08-03 16:46:00 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2016-08-04 08:50:07 -0400 |
commit | 00085f1efa387a8ce100e3734920f7639c80caa3 (patch) | |
tree | 41ff3d6e6884918b4fc4f1ae96a284098167c5b0 /drivers/misc/mic/host | |
parent | 1605d2715ad2e67ddd0485a26e05ed670a4285ca (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 'drivers/misc/mic/host')
-rw-r--r-- | drivers/misc/mic/host/mic_boot.c | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/drivers/misc/mic/host/mic_boot.c b/drivers/misc/mic/host/mic_boot.c index e047efd83f57..9599d732aff3 100644 --- a/drivers/misc/mic/host/mic_boot.c +++ b/drivers/misc/mic/host/mic_boot.c | |||
@@ -38,7 +38,7 @@ static inline struct mic_device *vpdev_to_mdev(struct device *dev) | |||
38 | static dma_addr_t | 38 | static dma_addr_t |
39 | _mic_dma_map_page(struct device *dev, struct page *page, | 39 | _mic_dma_map_page(struct device *dev, struct page *page, |
40 | unsigned long offset, size_t size, | 40 | unsigned long offset, size_t size, |
41 | enum dma_data_direction dir, struct dma_attrs *attrs) | 41 | enum dma_data_direction dir, unsigned long attrs) |
42 | { | 42 | { |
43 | void *va = phys_to_virt(page_to_phys(page)) + offset; | 43 | void *va = phys_to_virt(page_to_phys(page)) + offset; |
44 | struct mic_device *mdev = vpdev_to_mdev(dev); | 44 | struct mic_device *mdev = vpdev_to_mdev(dev); |
@@ -48,7 +48,7 @@ _mic_dma_map_page(struct device *dev, struct page *page, | |||
48 | 48 | ||
49 | static void _mic_dma_unmap_page(struct device *dev, dma_addr_t dma_addr, | 49 | static void _mic_dma_unmap_page(struct device *dev, dma_addr_t dma_addr, |
50 | size_t size, enum dma_data_direction dir, | 50 | size_t size, enum dma_data_direction dir, |
51 | struct dma_attrs *attrs) | 51 | unsigned long attrs) |
52 | { | 52 | { |
53 | struct mic_device *mdev = vpdev_to_mdev(dev); | 53 | struct mic_device *mdev = vpdev_to_mdev(dev); |
54 | 54 | ||
@@ -144,7 +144,7 @@ static inline struct mic_device *scdev_to_mdev(struct scif_hw_dev *scdev) | |||
144 | 144 | ||
145 | static void *__mic_dma_alloc(struct device *dev, size_t size, | 145 | static void *__mic_dma_alloc(struct device *dev, size_t size, |
146 | dma_addr_t *dma_handle, gfp_t gfp, | 146 | dma_addr_t *dma_handle, gfp_t gfp, |
147 | struct dma_attrs *attrs) | 147 | unsigned long attrs) |
148 | { | 148 | { |
149 | struct scif_hw_dev *scdev = dev_get_drvdata(dev); | 149 | struct scif_hw_dev *scdev = dev_get_drvdata(dev); |
150 | struct mic_device *mdev = scdev_to_mdev(scdev); | 150 | struct mic_device *mdev = scdev_to_mdev(scdev); |
@@ -164,7 +164,7 @@ static void *__mic_dma_alloc(struct device *dev, size_t size, | |||
164 | } | 164 | } |
165 | 165 | ||
166 | static void __mic_dma_free(struct device *dev, size_t size, void *vaddr, | 166 | static void __mic_dma_free(struct device *dev, size_t size, void *vaddr, |
167 | dma_addr_t dma_handle, struct dma_attrs *attrs) | 167 | dma_addr_t dma_handle, unsigned long attrs) |
168 | { | 168 | { |
169 | struct scif_hw_dev *scdev = dev_get_drvdata(dev); | 169 | struct scif_hw_dev *scdev = dev_get_drvdata(dev); |
170 | struct mic_device *mdev = scdev_to_mdev(scdev); | 170 | struct mic_device *mdev = scdev_to_mdev(scdev); |
@@ -176,7 +176,7 @@ static void __mic_dma_free(struct device *dev, size_t size, void *vaddr, | |||
176 | static dma_addr_t | 176 | static dma_addr_t |
177 | __mic_dma_map_page(struct device *dev, struct page *page, unsigned long offset, | 177 | __mic_dma_map_page(struct device *dev, struct page *page, unsigned long offset, |
178 | size_t size, enum dma_data_direction dir, | 178 | size_t size, enum dma_data_direction dir, |
179 | struct dma_attrs *attrs) | 179 | unsigned long attrs) |
180 | { | 180 | { |
181 | void *va = phys_to_virt(page_to_phys(page)) + offset; | 181 | void *va = phys_to_virt(page_to_phys(page)) + offset; |
182 | struct scif_hw_dev *scdev = dev_get_drvdata(dev); | 182 | struct scif_hw_dev *scdev = dev_get_drvdata(dev); |
@@ -188,7 +188,7 @@ __mic_dma_map_page(struct device *dev, struct page *page, unsigned long offset, | |||
188 | static void | 188 | static void |
189 | __mic_dma_unmap_page(struct device *dev, dma_addr_t dma_addr, | 189 | __mic_dma_unmap_page(struct device *dev, dma_addr_t dma_addr, |
190 | size_t size, enum dma_data_direction dir, | 190 | size_t size, enum dma_data_direction dir, |
191 | struct dma_attrs *attrs) | 191 | unsigned long attrs) |
192 | { | 192 | { |
193 | struct scif_hw_dev *scdev = dev_get_drvdata(dev); | 193 | struct scif_hw_dev *scdev = dev_get_drvdata(dev); |
194 | struct mic_device *mdev = scdev_to_mdev(scdev); | 194 | struct mic_device *mdev = scdev_to_mdev(scdev); |
@@ -198,7 +198,7 @@ __mic_dma_unmap_page(struct device *dev, dma_addr_t dma_addr, | |||
198 | 198 | ||
199 | static int __mic_dma_map_sg(struct device *dev, struct scatterlist *sg, | 199 | static int __mic_dma_map_sg(struct device *dev, struct scatterlist *sg, |
200 | int nents, enum dma_data_direction dir, | 200 | int nents, enum dma_data_direction dir, |
201 | struct dma_attrs *attrs) | 201 | unsigned long attrs) |
202 | { | 202 | { |
203 | struct scif_hw_dev *scdev = dev_get_drvdata(dev); | 203 | struct scif_hw_dev *scdev = dev_get_drvdata(dev); |
204 | struct mic_device *mdev = scdev_to_mdev(scdev); | 204 | struct mic_device *mdev = scdev_to_mdev(scdev); |
@@ -229,7 +229,7 @@ err: | |||
229 | static void __mic_dma_unmap_sg(struct device *dev, | 229 | static void __mic_dma_unmap_sg(struct device *dev, |
230 | struct scatterlist *sg, int nents, | 230 | struct scatterlist *sg, int nents, |
231 | enum dma_data_direction dir, | 231 | enum dma_data_direction dir, |
232 | struct dma_attrs *attrs) | 232 | unsigned long attrs) |
233 | { | 233 | { |
234 | struct scif_hw_dev *scdev = dev_get_drvdata(dev); | 234 | struct scif_hw_dev *scdev = dev_get_drvdata(dev); |
235 | struct mic_device *mdev = scdev_to_mdev(scdev); | 235 | struct mic_device *mdev = scdev_to_mdev(scdev); |
@@ -327,7 +327,7 @@ static inline struct mic_device *mbdev_to_mdev(struct mbus_device *mbdev) | |||
327 | static dma_addr_t | 327 | static dma_addr_t |
328 | mic_dma_map_page(struct device *dev, struct page *page, | 328 | mic_dma_map_page(struct device *dev, struct page *page, |
329 | unsigned long offset, size_t size, enum dma_data_direction dir, | 329 | unsigned long offset, size_t size, enum dma_data_direction dir, |
330 | struct dma_attrs *attrs) | 330 | unsigned long attrs) |
331 | { | 331 | { |
332 | void *va = phys_to_virt(page_to_phys(page)) + offset; | 332 | void *va = phys_to_virt(page_to_phys(page)) + offset; |
333 | struct mic_device *mdev = dev_get_drvdata(dev->parent); | 333 | struct mic_device *mdev = dev_get_drvdata(dev->parent); |
@@ -338,7 +338,7 @@ mic_dma_map_page(struct device *dev, struct page *page, | |||
338 | static void | 338 | static void |
339 | mic_dma_unmap_page(struct device *dev, dma_addr_t dma_addr, | 339 | mic_dma_unmap_page(struct device *dev, dma_addr_t dma_addr, |
340 | size_t size, enum dma_data_direction dir, | 340 | size_t size, enum dma_data_direction dir, |
341 | struct dma_attrs *attrs) | 341 | unsigned long attrs) |
342 | { | 342 | { |
343 | struct mic_device *mdev = dev_get_drvdata(dev->parent); | 343 | struct mic_device *mdev = dev_get_drvdata(dev->parent); |
344 | mic_unmap_single(mdev, dma_addr, size); | 344 | mic_unmap_single(mdev, dma_addr, size); |