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