Re: [patch 021/104] lib/idr.c: fix rcu related race with idr_find

From: Manfred Spraul
Date: Wed Dec 10 2008 - 12:39:43 EST


Dave Airlie wrote:
Actually now that I'm starting to wrap my head around it I think it
might be the fact that I call
idr_get_new_above with 64, then later with 0. I'm not sure the new
code is dealing with that case so
well.
Yes, that's it.
When idr_get_new_above(,,64,) is called, the idr code creates a tree with 2 layers, without the entry 0 in layer 1.
This was special-cased [without comments], I missed it.

I've just send you a patch, could you try it?
It passes self tests [including idr_get_new_above and idr_replace].

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