> > usb_hub_port_connect_change() should drop the semaphore
> > before usb_new_device(). How to do that? Is doing usb_new_device
> > several times really necessary?
>
> The semaphore protects the bus for the 0 address. We could either move
> obtaining the sempahore into usb_new_device(), or move the
> usb_set_address() call into usb_hub_port_connect_change().
>
> I think we should move the semaphore into usb_new_device() and
> usb_reset_device() into usb.c.

Isn't usb_new_device() too late ? It seems to me that the critical section
starts here:
                /* Reset the device */
                if (usb_hub_port_reset(hub, port, dev, delay)) {
                        usb_free_dev(dev);
                        break;
                }

IMHO till usb_set_address() is the hub driver's job.

        Regards
                Oliver



-------------------------------------------------------
This sf.net email is sponsored by:
With Great Power, Comes Great Responsibility
Learn to use your power at OSDN's High Performance Computing Channel
http://hpc.devchannel.org/
_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to