Re: [PATCH 02/34] AMD IOMMU: add header file for driver data structures and defines

From: Joerg Roedel
Date: Thu Jul 10 2008 - 08:13:28 EST


On Wed, Jul 09, 2008 at 07:36:01PM -0700, Andrew Morton wrote:
> On Wed, 9 Jul 2008 18:50:55 -0700 Arjan van de Ven <arjan@xxxxxxxxxxxxx> wrote:
>
> > On Wed, 9 Jul 2008 18:38:23 -0700
> > Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> wrote:
> >
> > > On Thu, 26 Jun 2008 21:27:38 +0200 Joerg Roedel
> > > <joerg.roedel@xxxxxxx> wrote:
> > >
> > > > +/* helper macros */
> > > > +#define LOW_U32(x) ((x) & ((1ULL << 32)-1))
> > > > +#define HIGH_U32(x) (LOW_U32((x) >> 32))
> > >
> > > Please avoid putting general-purpose helpers into private header
> > > files.
> >
> > especially broken helpers.
> >
> > A >> 32 on something that may be a 32 bit entry is bad; int32 >> 32...
> > gcc can (and does!) optimize that out.
> >
> > (because it first gets translated into a SHR x86 instruction which then
> > notices it's encoded as a zero shift.. which then gets deleted)
> >
>
> Well yeah. upper_32_bits() gets it all corect. We could do a
> lower_32_bits() I suppose, if it's useful.

Ok cool, I agree. I will replace the HIGH_U32 macro with the
upper_32_bits() function and the other one with lower_32_bits() if it
exists. Who will take the patch for the introduction of that function?

Joerg

--
| AMD Saxony Limited Liability Company & Co. KG
Operating | Wilschdorfer Landstr. 101, 01109 Dresden, Germany
System | Register Court Dresden: HRA 4896
Research | General Partner authorized to represent:
Center | AMD Saxony LLC (Wilmington, Delaware, US)
| General Manager of AMD Saxony LLC: Dr. Hans-R. Deppe, Thomas McCoy

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/