Re: [PATCH v4 01/44] dma-mapping: Use unsigned long for dma_attrs

From: Luis R. Rodriguez
Date: Fri Jun 10 2016 - 10:49:56 EST


On Fri, Jun 10, 2016 at 12:11:18PM +0200, Krzysztof Kozlowski wrote:
> 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.

Do we not expect the number of argument to grow ? This "cleanup" would
do away with such possibilities, and then require adding the API later,
and this requiring a full set of collateral evolutions again when this
is needed. What was the original motivation for using this instead of
the approach you are suggesting ?

If the concern is the const data, why not require const struct dma_attr
for the APIs that we know can and should use const ?

Luis