Re: get_device_parent() race bug

From: Greg KH
Date: Mon Oct 05 2009 - 23:06:48 EST


On Tue, Oct 06, 2009 at 10:15:12AM +0900, Tejun Heo wrote:
> Greg KH wrote:
> >>> BUG: unable to handle kernel NULL pointer dereference at 0000000000000038
> >> Ping. This one needs to be fixed in -stable. It can be triggered by
> >> other char devices too.
> >
> > Sorry, been slowly catching up...
> >
> > This can be triggered by char devices? Huh? How? I don't see the
> > failure path that is happening here.
>
> Oooh, s/char/virtual/. The bug is in the path which creates a
> directory under the phony parent.
>
> > And char devices shouldn't really be using the kobject at all, except
> > for a very basic reference count.
> >
> > I keep threatening to rip kobject out of a char device and just use a
> > kref, as that is all that is really needed. Well, that and the kmap
> > stuff, but again, it's not a "real" kobject being used there...
> >
> > Perhaps now is the time to do this.
>
> Yay!

Ugh, I tried to do this today but it looks like the gendisk structure
got all tied up with the kobj_map logic. Which doesn't look all too
correct to me but I'm not sure.

Kay, you did the gendisk kobject conversion, right? Any reason you tied
it into the kobj_map stuff? Or was that the way the code always was?

thanks,

greg k-h
--
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/