[lkml]   [2009]   [Jan]   [13]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
SubjectRe: lib/klist.c: bit 0 in pointer can't be used as flag
On Tue, Jan 13, 2009 at 10:10:30PM +0100, David Miller wrote:
> From: Jesper Nilsson <>
> 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 --

 \ /
  Last update: 2009-01-13 23:15    [W:0.060 / U:3.172 seconds]
©2003-2018 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site