On Fri, 11 Aug 2006, Greg KH wrote: > From: Greg Kroah-Hartman <[EMAIL PROTECTED]> > Subject: USB: create a new thread for every USB device found during the probe > sequence > > Might speed up some systems. If nothing else, a bad driver should not > take the whole USB subsystem down with it. > > Signed-off-by: Greg Kroah-Hartman <[EMAIL PROTECTED]> > > --- > drivers/usb/core/hub.c | 14 +++++++++++++- > 1 file changed, 13 insertions(+), 1 deletion(-) > > --- gregkh-2.6.orig/drivers/usb/core/hub.c > +++ gregkh-2.6/drivers/usb/core/hub.c > @@ -1199,8 +1199,9 @@ static void show_string(struct usb_devic > * > * Only the hub driver or root-hub registrar should ever call this. > */ > -int usb_new_device(struct usb_device *udev) > +static int __usb_new_device(void *void_data) > { > + struct usb_device *udev = void_data; > int err; > > err = usb_get_configuration(udev); > @@ -1311,6 +1312,17 @@ fail: > return err; > } > > +int usb_new_device(struct usb_device *udev) > +{ > + struct task_struct *probe_task; > + int ret = 0; > + > + probe_task = kthread_run(__usb_new_device, udev, > + "usb-probe-%s", udev->devnum); > + if (IS_ERR(probe_task)) > + ret = PTR_ERR(probe_task); > + return ret; > +} > > static int hub_port_status(struct usb_hub *hub, int port1, > u16 *status, u16 *change) >
This won't work right if an error occurs. The value you return to the caller of usb_new_device() reflects only errors in creating the new thread. It doesn't reflect any errors the thread itself may encounter. So the caller won't realize it if __usb_new_device() fails. Alan Stern ------------------------------------------------------------------------- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 _______________________________________________ linux-usb-devel@lists.sourceforge.net To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel