2007-09-18 06:16:57

by Borislav Petkov

[permalink] [raw]
Subject: [PATCH 0/2] unify DMA_..BIT_MASK definitions: v2

These patches remove redundant DMA_..BIT_MASK definitions across
two drivers. In this version of the patches, the computation
of the majority of the bitmasks is done by the compiler.

Signed-off-by: Borislav Petkov <[email protected]>
Cc: Jeremy Fitzhardinge <[email protected]>
Cc: Muli Ben-Yehuda <[email protected]>

---
23-rc6/include/linux/dma-mapping.h | 23 +++++++++++++----------
1 file changed, 13 insertions(+), 10 deletions(-)

Index: b/23-rc6/include/linux/dma-mapping.h
===================================================================
--- a/23-rc6/include/linux/dma-mapping.h 2007-09-17 17:48:20.000000000 +0200
+++ b/23-rc6/include/linux/dma-mapping.h 2007-09-18 08:11:19.000000000 +0200
@@ -13,16 +13,19 @@
DMA_NONE = 3,
};

-#define DMA_64BIT_MASK 0xffffffffffffffffULL
-#define DMA_48BIT_MASK 0x0000ffffffffffffULL
-#define DMA_40BIT_MASK 0x000000ffffffffffULL
-#define DMA_39BIT_MASK 0x0000007fffffffffULL
-#define DMA_32BIT_MASK 0x00000000ffffffffULL
-#define DMA_31BIT_MASK 0x000000007fffffffULL
-#define DMA_30BIT_MASK 0x000000003fffffffULL
-#define DMA_29BIT_MASK 0x000000001fffffffULL
-#define DMA_28BIT_MASK 0x000000000fffffffULL
-#define DMA_24BIT_MASK 0x0000000000ffffffULL
+#define DMA_BIT_MASK(n) ((1ULL<<(n))-1)
+
+#define DMA_64BIT_MASK ~0ULL
+#define DMA_48BIT_MASK DMA_BIT_MASK(48)
+#define DMA_40BIT_MASK DMA_BIT_MASK(40)
+#define DMA_39BIT_MASK DMA_BIT_MASK(39)
+#define DMA_35BIT_MASK DMA_BIT_MASK(35)
+#define DMA_32BIT_MASK DMA_BIT_MASK(32)
+#define DMA_31BIT_MASK DMA_BIT_MASK(31)
+#define DMA_30BIT_MASK DMA_BIT_MASK(30)
+#define DMA_29BIT_MASK DMA_BIT_MASK(29)
+#define DMA_28BIT_MASK DMA_BIT_MASK(28)
+#define DMA_24BIT_MASK DMA_BIT_MASK(24)

static inline int valid_dma_direction(int dma_direction)
{

--
Regards/Gru?,
Boris.


2007-09-18 06:35:45

by Satyam Sharma

[permalink] [raw]
Subject: Re: [PATCH 0/2] unify DMA_..BIT_MASK definitions: v2



On Tue, 18 Sep 2007, Borislav Petkov wrote:

> These patches remove redundant DMA_..BIT_MASK definitions across
> two drivers. In this version of the patches, the computation
> of the majority of the bitmasks is done by the compiler.
>
> Signed-off-by: Borislav Petkov <[email protected]>
> Cc: Jeremy Fitzhardinge <[email protected]>
> Cc: Muli Ben-Yehuda <[email protected]>

Just a friendly note to whoever (Jeremy?) picks up these patches --
kindly fold all three into a single git commit. No point introducing
new compile warnings to the kernel build process for no good reason
(and some archs do set -Werror in their top level Makefiles, even).


> ---
> 23-rc6/include/linux/dma-mapping.h | 23 +++++++++++++----------
> 1 file changed, 13 insertions(+), 10 deletions(-)
>
> Index: b/23-rc6/include/linux/dma-mapping.h
> ===================================================================
> --- a/23-rc6/include/linux/dma-mapping.h 2007-09-17 17:48:20.000000000 +0200
> +++ b/23-rc6/include/linux/dma-mapping.h 2007-09-18 08:11:19.000000000 +0200
^^^^^^^^^

And whoever picks these up is gonna have trouble applying them too.

Borislav, care to have another shot at this ?

Thanks,
Satyam


> @@ -13,16 +13,19 @@
> DMA_NONE = 3,
> };
>
> -#define DMA_64BIT_MASK 0xffffffffffffffffULL
> -#define DMA_48BIT_MASK 0x0000ffffffffffffULL
> -#define DMA_40BIT_MASK 0x000000ffffffffffULL
> -#define DMA_39BIT_MASK 0x0000007fffffffffULL
> -#define DMA_32BIT_MASK 0x00000000ffffffffULL
> -#define DMA_31BIT_MASK 0x000000007fffffffULL
> -#define DMA_30BIT_MASK 0x000000003fffffffULL
> -#define DMA_29BIT_MASK 0x000000001fffffffULL
> -#define DMA_28BIT_MASK 0x000000000fffffffULL
> -#define DMA_24BIT_MASK 0x0000000000ffffffULL
> +#define DMA_BIT_MASK(n) ((1ULL<<(n))-1)
> +
> +#define DMA_64BIT_MASK ~0ULL
> +#define DMA_48BIT_MASK DMA_BIT_MASK(48)
> +#define DMA_40BIT_MASK DMA_BIT_MASK(40)
> +#define DMA_39BIT_MASK DMA_BIT_MASK(39)
> +#define DMA_35BIT_MASK DMA_BIT_MASK(35)
> +#define DMA_32BIT_MASK DMA_BIT_MASK(32)
> +#define DMA_31BIT_MASK DMA_BIT_MASK(31)
> +#define DMA_30BIT_MASK DMA_BIT_MASK(30)
> +#define DMA_29BIT_MASK DMA_BIT_MASK(29)
> +#define DMA_28BIT_MASK DMA_BIT_MASK(28)
> +#define DMA_24BIT_MASK DMA_BIT_MASK(24)
>
> static inline int valid_dma_direction(int dma_direction)
> {