Re: Process to push changes to include/linux/types.h

From: Andreas Gruenbacher
Date: Fri Oct 15 2010 - 06:16:25 EST


On Friday 15 October 2010 11:01:34 Andrew Morton wrote:
> On Fri, 15 Oct 2010 10:22:49 +0200 Andi Kleen <andi@xxxxxxxxxxxxxx> wrote:
>
> > Jan Engelhardt <jengelh@xxxxxxxxxx> writes:
> >
> > > I would be interested in knowing whether you - in whichever subsystems
> > > you happen to be active - would even need aligned_u64. Right now,
> > > the only users seem to be PPP and scsi_tgt besides Netfilter.
> >
> > Using aligned_u64 is good practice to avoid problems with the
> > 32bit/64bit compat layer. I would recommend it to anyone
> > adding a new user space interface passing a 64bit value.
> >
>
> What "problems" does it prevent when used for this?

64-bit values align to 4-byte boundaries on some 32-bit architectures like x86
and to 8-byte boundaries on 64-bit architetures. The new __aligned_64 type
enforces 8-byte alignment and so structs containing __aligned_64 values have
the same alignment on 32-bit and 64-bit architectures. No conversions are
necessary between 32-bit user-space and a 64-bit kernel.

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