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

Manfred Spraul
2008-12-10T17:39:43Z

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