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 | |
| 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')
| -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); |
