These patches remove redundant DMA_..BIT_MASK definitions across two drivers.
In this version of the patches, the computation of the bitmasks is done by
the compiler.
Signed-off-by: Borislav Petkov <[email protected]>
Cc: Jeremy Fitzhardinge <[email protected]>
--
Index: 23-rc6/include/linux/dma-mapping.h
===================================================================
--- 23-rc6/include/linux/dma-mapping.h.orig 2007-09-17 17:48:20.000000000 +0200
+++ 23-rc6/include/linux/dma-mapping.h 2007-09-18 06:12:33.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 DMA_BIT_MASK(64)
+#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.
On Tue, Sep 18, 2007 at 06:29:19AM +0200, Borislav Petkov wrote:
> These patches remove redundant DMA_..BIT_MASK definitions across two drivers.
> In this version of the patches, the computation of the bitmasks is done by
> the compiler.
>
> Signed-off-by: Borislav Petkov <[email protected]>
> Cc: Jeremy Fitzhardinge <[email protected]>
>
> --
> Index: 23-rc6/include/linux/dma-mapping.h
> ===================================================================
> --- 23-rc6/include/linux/dma-mapping.h.orig 2007-09-17 17:48:20.000000000 +0200
> +++ 23-rc6/include/linux/dma-mapping.h 2007-09-18 06:12:33.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 DMA_BIT_MASK(64)
This one does not do what you mean. You need an explicit mask or a
~0ULL here.
Cheers,
Muli
Muli Ben-Yehuda wrote:
>> +#define DMA_64BIT_MASK DMA_BIT_MASK(64)
>>
>
> This one does not do what you mean. You need an explicit mask or a
> ~0ULL here.
Yeah, I was just about to comment on it. Its possible the compiler
might decide to shift by x%64 = 0.
J
On Mon, Sep 17, 2007 at 11:01:21PM -0700, Jeremy Fitzhardinge wrote:
> Muli Ben-Yehuda wrote:
> >> +#define DMA_64BIT_MASK DMA_BIT_MASK(64)
> >>
> >
> > This one does not do what you mean. You need an explicit mask or a
> > ~0ULL here.
>
> Yeah, I was just about to comment on it. Its possible the compiler
> might decide to shift by x%64 = 0.
>
> J
ups, i knew that this might be a corner/boundary case. Thanks, updated patches
follow...
--
Regards/Gru?,
Boris.
Hi Borislav,
On Tue, 18 Sep 2007, Borislav Petkov wrote:
> On Mon, Sep 17, 2007 at 11:01:21PM -0700, Jeremy Fitzhardinge wrote:
> > Muli Ben-Yehuda wrote:
> > >> +#define DMA_64BIT_MASK DMA_BIT_MASK(64)
> > >>
> > >
> > > This one does not do what you mean. You need an explicit mask or a
> > > ~0ULL here.
> >
> > Yeah, I was just about to comment on it. Its possible the compiler
> > might decide to shift by x%64 = 0.
> >
> > J
> ups, i knew that this might be a corner/boundary case. Thanks, updated patches
> follow...
Please fold all three patches into a single patch in the updated series,
otherwise git bisecters falling in between these patches will see the
"redefinition ... previous definition was here" warnings of gcc ...
Satyam
On Tue, Sep 18, 2007 at 11:46:40AM +0530, Satyam Sharma wrote:
> Hi Borislav,
>
>
> On Tue, 18 Sep 2007, Borislav Petkov wrote:
>
> > On Mon, Sep 17, 2007 at 11:01:21PM -0700, Jeremy Fitzhardinge wrote:
> > > Muli Ben-Yehuda wrote:
> > > >> +#define DMA_64BIT_MASK DMA_BIT_MASK(64)
> > > >>
> > > >
> > > > This one does not do what you mean. You need an explicit mask or a
> > > > ~0ULL here.
> > >
> > > Yeah, I was just about to comment on it. Its possible the compiler
> > > might decide to shift by x%64 = 0.
> > >
> > > J
> > ups, i knew that this might be a corner/boundary case. Thanks, updated patches
> > follow...
>
> Please fold all three patches into a single patch in the updated series,
> otherwise git bisecters falling in between these patches will see the
> "redefinition ... previous definition was here" warnings of gcc ...
Will do later today, thanks.
--
Regards/Gru?,
Boris.