Re: lib/klist.c: bit 0 in pointer can't be used as flag

From: Jesper Nilsson
Date: Wed Jan 14 2009 - 06:03:33 EST


On Wed, Jan 14, 2009 at 11:45:28AM +0100, David Miller wrote:
> From: Jesper Nilsson <Jesper.Nilsson@xxxxxxxx>
> Date: Wed, 14 Jan 2009 11:36:24 +0100
>
> > On Wed, Jan 14, 2009 at 11:21:40AM +0100, David Miller wrote:
> > > From: Jesper Nilsson <Jesper.Nilsson@xxxxxxxx>
> > > Date: Wed, 14 Jan 2009 11:19:08 +0100
> > > > The following patch works for CRIS, and is less intrusive than
> > > > my earlier patch. If this the way to go I can resubmit a proper patch.
> > >
> > > Out of curiosity, is there a way to get gcc to output code such
> > > that data objects are aligned more naturally? Some option or
> > > similar?
> >
> > There's flags for alignment of objects, but no flags for changing
> > structure layout or size, which is probably what we run into here.
>
> Really?

A quick test using 32bit alignment didn't work, but it could be
that I've missed a place to modify cflags.

> I thought the problem is that the base object can have any odd
> alignment in the kernel image. And this is why the problem isn't run
> into for objects allocated using dynamic allocation.

I reasoned that the struct klist is actually allocated as a part of
another struct, which due to no padding got the odd alignment.
I'll research this more fully.

/^JN - Jesper Nilsson
--
Jesper Nilsson -- jesper.nilsson@xxxxxxxx
--
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/