Messages in this thread | | | Date | Tue, 13 Jan 2009 23:12:35 +0100 | From | Jesper Nilsson <> | Subject | Re: 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 <jesper.nilsson@axis.com> > 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@axis.com
| |