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

From: Arjan van de Ven
Date: Wed Jul 09 2008 - 21:51:20 EST


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)



--
If you want to reach me at my work email, use arjan@xxxxxxxxxxxxxxx
For development, discussion and tips for power savings,
visit http://www.lesswatts.org
--
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/