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

From: Hugh Dickins
Date: Tue Jan 13 2009 - 19:34:24 EST


On Tue, 13 Jan 2009, David Miller wrote:
> From: KOSAKI Motohiro <kosaki.motohiro@xxxxxxxxxxxxxx>
> Date: Wed, 14 Jan 2009 07:40:19 +0900
>
> > > It may be that we've worked around the other spots, although I haven't
> > > seen anything like that, we might just have been lucky until now.
> > >
> > > Can you recall another place where this trick is used?
> >
> > rmap.
> > Don't CRIS use mmu?
>
> I'm beginning to suspect the issue is only with objects
> in the kernel image itself. Dynamically allocated memory
> is properly aligned and therefore the "low bit status bits
> in pointer" trick works.

Yes: I don't think we fully realized that when adding the
__attribute__((aligned(sizeof(long)))) to struct address_space
(so the PAGE_MAPPING_ANON bit didn't mess up on CRIS), but the
only instance which actually gave a problem was the peculiar
struct swapper_space declared in mm/swap_state.c.

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