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

From: Jesper Nilsson
Date: Tue Jan 13 2009 - 17:13:32 EST


On Tue, Jan 13, 2009 at 10:10:30PM +0100, David Miller wrote:
> From: Jesper Nilsson <jesper.nilsson@xxxxxxxx>
> Date: Tue, 13 Jan 2009 16:14:06 +0100
>
> > The commit a1ed5b0cffe4b16a93a6a3390e8cee0fbef94f86
> > (klist: don't iterate over deleted entries) introduces use of the
> > low bit in a pointer to indicate if the knode is dead or not,
> > assuming that this bit is always free.
> >
> > This is not true for all architectures, CRIS for example may align data
> > on byte borders.
>
> There are many other spots in the kernel where the low bits of a
> pointer are hijacked as status bits. Lots of other things cannot
> possible be working on CRIS because of this.

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?

It seems that rt_mutex uses the same trick (with the lowest 2bits)
but AFAICT that's something we don't use on CRIS.

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