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;...
Showing
- Documentation/DMA-API.txt 14 additions, 19 deletionsDocumentation/DMA-API.txt
- Documentation/DMA-attributes.txt 1 addition, 1 deletionDocumentation/DMA-attributes.txt
- arch/alpha/include/asm/dma-mapping.h 0 additions, 2 deletionsarch/alpha/include/asm/dma-mapping.h
- arch/alpha/kernel/pci-noop.c 1 addition, 1 deletionarch/alpha/kernel/pci-noop.c
- arch/alpha/kernel/pci_iommu.c 6 additions, 6 deletionsarch/alpha/kernel/pci_iommu.c
- arch/arc/mm/dma.c 6 additions, 6 deletionsarch/arc/mm/dma.c
- arch/arm/common/dmabounce.c 2 additions, 2 deletionsarch/arm/common/dmabounce.c
- arch/arm/include/asm/dma-mapping.h 6 additions, 7 deletionsarch/arm/include/asm/dma-mapping.h
- arch/arm/include/asm/xen/page-coherent.h 6 additions, 10 deletionsarch/arm/include/asm/xen/page-coherent.h
- arch/arm/mm/dma-mapping.c 63 additions, 66 deletionsarch/arm/mm/dma-mapping.c
- arch/arm/xen/mm.c 4 additions, 4 deletionsarch/arm/xen/mm.c
- arch/arm64/mm/dma-mapping.c 33 additions, 33 deletionsarch/arm64/mm/dma-mapping.c
- arch/avr32/mm/dma-coherent.c 6 additions, 6 deletionsarch/avr32/mm/dma-coherent.c
- arch/blackfin/kernel/dma-mapping.c 4 additions, 4 deletionsarch/blackfin/kernel/dma-mapping.c
- arch/c6x/include/asm/dma-mapping.h 2 additions, 2 deletionsarch/c6x/include/asm/dma-mapping.h
- arch/c6x/kernel/dma.c 4 additions, 5 deletionsarch/c6x/kernel/dma.c
- arch/c6x/mm/dma-coherent.c 2 additions, 2 deletionsarch/c6x/mm/dma-coherent.c
- arch/cris/arch-v32/drivers/pci/dma.c 4 additions, 5 deletionsarch/cris/arch-v32/drivers/pci/dma.c
- arch/frv/mb93090-mb00/pci-dma-nommu.c 4 additions, 4 deletionsarch/frv/mb93090-mb00/pci-dma-nommu.c
- arch/frv/mb93090-mb00/pci-dma.c 4 additions, 5 deletionsarch/frv/mb93090-mb00/pci-dma.c
Please register or sign in to comment