Re: [GIT PATCH] USB patches for 2.6.33-git

From: Russ Dill
Date: Tue Dec 15 2009 - 01:12:10 EST


Linus Torvalds wrote:
>
> On Mon, 14 Dec 2009, Russ Dill wrote:
>> From: Russ Dill <Russ.Dill@xxxxxxxxx>
>> Date: Wed, 18 Nov 2009 10:31:27 -0700
>> Subject: [PATCH] Close usb_find_interface race v3
> [...]
>
> Ok, patch looks good to me.
>
> However, now I just wonder whether this re-introduces the original race.
>
> In the original race description:
>
>> USB drivers that create character devices call usb_register_dev in their
>> probe function. This associates the usb_interface device with that minor
>> number and creates the character device and announces it to the world.
>> However, the driver's probe function is called before the new
>> usb_interface is added to the driver's klist_devices.
>
> and now we obviously no longer care about that klist_devices thing any
> more, but we _do_ care about 'dev->driver'.
>
> Has that been set by the time the driver's probe function is called? Or
> are we now going to have the same situation as before the original patch?
>
> [ That obviously always worked for my printer situation, but I'm just
> wondering if this patch actually now helps whatever problem the original
> patch was supposed to help? ]
>
> Somebody who knows the USB driver binding code better than I do should
> look at this. Greg?
>

I'll test tomorrow be sure, but It seems fine. really_probe in
drivers/base/dd.c is setting dev->driver before calling drv->probe.
driver_bound is called after drv->prove which adds the device to the
driver klist_devices.

Attachment: signature.asc
Description: OpenPGP digital signature