ChangeSet 1.1455.1.42, 2003/07/17 14:47:19-07:00, [EMAIL PROTECTED]
[PATCH] USB: fix race between probe and open in dabusb
the driver is registering the device too early, so that open may
see a partially initialised device.
drivers/usb/media/dabusb.c | 15 ++++++++++-----
1 files changed, 10 insertions(+), 5 deletions(-)
diff -Nru a/drivers/usb/media/dabusb.c b/drivers/usb/media/dabusb.c
--- a/drivers/usb/media/dabusb.c Thu Jul 17 17:03:16 2003
+++ b/drivers/usb/media/dabusb.c Thu Jul 17 17:03:16 2003
@@ -721,7 +721,7 @@
/* --------------------------------------------------------------------- */
-static int dabusb_probe (struct usb_interface *intf,
+static int dabusb_probe (struct usb_interface *intf,
const struct usb_device_id *id)
{
struct usb_device *usbdev = interface_to_usbdev(intf);
@@ -738,9 +738,7 @@
if (intf->altsetting->desc.bInterfaceNumber != _DABUSB_IF &&
usbdev->descriptor.idProduct == 0x9999)
return -ENODEV;
- retval = usb_register_dev(intf, &dabusb_class);
- if (retval)
- return -ENOMEM;
+
s = &dabusb[intf->minor];
@@ -766,8 +764,15 @@
}
}
dbg("bound to interface: %d", ifnum);
- up (&s->mutex);
usb_set_intfdata (intf, s);
+ up (&s->mutex);
+
+ retval = usb_register_dev(intf, &dabusb_class);
+ if (retval) {
+ usb_set_intfdata (intf, NULL);
+ return -ENOMEM;
+ }
+
return 0;
reject:
-------------------------------------------------------
This SF.net email is sponsored by: VM Ware
With VMware you can run multiple operating systems on a single machine.
WITHOUT REBOOTING! Mix Linux / Windows / Novell virtual machines at the
same time. Free trial click here: http://www.vmware.com/wl/offer/345/0
_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel