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

From: Andrew Morton
Date: Wed Jul 09 2008 - 22:42:44 EST


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.

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