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

From: Andrew Morton
Date: Thu Jul 10 2008 - 09:05:32 EST


On Thu, 10 Jul 2008 14:12:22 +0200 Joerg Roedel <joerg.roedel@xxxxxxx> wrote:

> 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?
>

I can do that. We can slip it into mainline as soon as it's ready so that
the for-2.6.27 patches contine to work.

Or we can just do it later, as a followup thing. Probably this is better.
--
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/