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

Andrew Morton
2008-12-10T02:34:43Z

On Wed, 10 Dec 2008 12:08:13 +1000 "Dave Airlie" <airlied@gmail.com> wrote:

> >> if my usage is illegal over just overlooked.
> >
> >
> > <greps for a while>
> >
> > I assume we're talking about drivers/gpu/drm/drm_stub.c:drm_minor_get_id()?
> >
> > I don't immediately see anything in the idr code which special-cases a
> > NULL caller pointer?
> >
>
> 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.
>
> We don't do that in the standard kernel tree yet, so it explains why
> nobody's noticed, however the KMS
> changes introduce it, and we have those in f10.
>
> http://git.kernel.org/?p=linux/kernel/git/airlied/drm-2.6.git;a=blob;f=drivers/gpu/drm/drm_stub.c;h=5ca132afa4f2e128999e319e44e31ad156e6ab74;hb=drm-next
>
> is the drm_stub.c from drm-next that will trigger the issue.
>
> Again I'm not sure if this is a legal use of idrs.
>

Well nobody really maintains or owns the idr code, so there's nobody we
can ask about design intent. Various people do hit-n-run attacks on it
when the need presents.