Messages in this thread | | | Date | Wed, 10 Dec 2008 18:33:35 +0100 | From | Manfred Spraul <> | Subject | Re: [patch 021/104] lib/idr.c: fix rcu related race with idr_find |
| |
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
| |