Re: [PATCH 05/44 take 2] [UBI] internal common header

Christoph Hellwig
2007-02-25T05:45:50Z

On Tue, Feb 20, 2007 at 05:24:15PM +0200, Artem Bityutskiy wrote:
> On Tue, 2007-02-20 at 15:15 +0000, David Woodhouse wrote:
> > On Tue, 2007-02-20 at 09:55 -0500, Theodore Tso wrote:
> > > It appears that the reason why you are doing this is because you think
> > > you need the (packed) attribute. Not needed; Linux assumes all over
> > > the place 16, 32, and 64 types are packed. If Linux is ever compiled
> > > on an architecture where this isn't true, the compiler will probably
> > > need to be fixed so these assumptions are true, since all manner of
> > > things will break.
> >
> > No, the packedness is irrelevant -- the reason is just to catch all the
> > places where you might otherwise forget to use byte-swapping accesses.
>
> Bear in mind we share this header with user-space, so it is safer to use
> packed as well as C99 types.

It's definitively not safe for userspace - packed is not an ISO C thing
and there's no guarantee userspace compilers understand it. Also you
really don't want to use packed in new code, if you really need oddly
aligned types it's much better to use byte arrays.