ChangeSet 1.823.3.9, 2002/11/11 15:47:33-08:00, [EMAIL PROTECTED]

[PATCH] USB: update usb hotplug documentation



diff -Nru a/drivers/usb/core/usb.c b/drivers/usb/core/usb.c
--- a/drivers/usb/core/usb.c    Thu Nov 14 14:12:43 2002
+++ b/drivers/usb/core/usb.c    Thu Nov 14 14:12:43 2002
@@ -514,17 +514,10 @@
  * or other modules, configure the device, and more.  Drivers can provide
  * a MODULE_DEVICE_TABLE to help with module loading subtasks.
  *
- * Some synchronization is important: removes can't start processing
- * before the add-device processing completes, and vice versa.  That keeps
- * a stack of USB-related identifiers stable while they're in use.  If we
- * know that agents won't complete after they return (such as by forking
- * a process that completes later), it's enough to just waitpid() for the
- * agent -- as is currently done.
- *
- * The reason: we know we're called either from khubd (the typical case)
- * or from root hub initialization (init, kapmd, modprobe, etc).  In both
- * cases, we know no other thread can recycle our address, since we must
- * already have been serialized enough to prevent that.
+ * We're called either from khubd (the typical case) or from root hub
+ * (init, kapmd, modprobe, rmmod, etc), but the agents need to handle
+ * delays in event delivery.  Use sysfs (and DEVPATH) to make sure the
+ * device (and this configuration!) are still present.
  */
 static int usb_hotplug (struct device *dev, char **envp, int num_envp,
                        char *buffer, int buffer_size)
@@ -579,7 +572,7 @@
        scratch += length;
 #endif
 
-       /* per-device configuration hacks are common */
+       /* per-device configurations are common */
        envp [i++] = scratch;
        length += snprintf (scratch, buffer_size - length, "PRODUCT=%x/%x/%x",
                            usb_dev->descriptor.idVendor,
@@ -604,10 +597,9 @@
        if (usb_dev->descriptor.bDeviceClass == 0) {
                int alt = intf->act_altsetting;
 
-               /* a simple/common case: one config, one interface, one driver
-                * with current altsetting being a reasonable setting.
-                * everything needs a smart agent and usbfs; or can rely on
-                * device-specific binding policies.
+               /* 2.4 only exposed interface zero.  in 2.5, hotplug
+                * agents are called for all interfaces, and can use
+                * $DEVPATH/bInterfaceNumber if necessary.
                 */
                envp [i++] = scratch;
                length += snprintf (scratch, buffer_size - length,


-------------------------------------------------------
This sf.net email is sponsored by: To learn the basics of securing 
your web site with SSL, click here to get a FREE TRIAL of a Thawte 
Server Certificate: http://www.gothawte.com/rd524.html
_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to