Re: get_device_parent() race bug

From: Kay Sievers
Date: Mon Oct 05 2009 - 23:31:14 EST


On Tue, Oct 6, 2009 at 05:05, Greg KH <greg@xxxxxxxxx> wrote:
> 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?

Yeah, it was like this, we just wrapped the struct device around the
kobject. We need the map here to be able to lookup a disk by
major/minor.

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