The following reply was made to PR usb/107701; it has been noted by GNATS.

From: Henrik Gulbrandsen <[EMAIL PROTECTED]>
To: [EMAIL PROTECTED], [EMAIL PROTECTED]
Cc:  
Subject: Re: usb/107701: [usbd] [request] usbd ignores "detach"
Date: Mon, 28 Jan 2008 16:42:09 +0100

 --=-bcbp/cJjit19VlGihz+i
 Content-Type: text/plain
 Content-Transfer-Encoding: 7bit
 
 This is a well-known problem covered in my original umass work:
 
 src/usb_subr.c.patch: the usbd fails to match a usbd.conf entry during
 detach, since the detach event is filled in after the device is gone.
 This is easily fixed by moving a line to fill in the information before
 we clear all the relevant data.
 
 The attached patch should still work. Of course, It may be irrelevant if
 using devd rather than usbd is the new method of choice...
 
 /Henrik
 
 
 --=-bcbp/cJjit19VlGihz+i
 Content-Disposition: attachment; filename=usb_subr.c.patch
 Content-Type: text/x-patch; name=usb_subr.c.patch; charset=ISO-8859-15
 Content-Transfer-Encoding: 7bit
 
 --- sys/dev/usb/usb_subr.c.orig        2007-06-30 22:18:44.000000000 +0200
 +++ sys/dev/usb/usb_subr.c     2007-10-29 15:54:54.000000000 +0100
 @@ -1367,6 +1367,9 @@
        }
  #endif
  
 +      /* Fill in devinfo before clearing subdevs, so usbd gets it all. */
 +      usbd_add_dev_event(USB_EVENT_DEVICE_DETACH, dev);
 +
        if (dev->subdevs != NULL) {
                DPRINTFN(3,("usb_disconnect_port: disconnect subdevs\n"));
                for (i = 0; dev->subdevs[i]; i++) {
 @@ -1385,7 +1388,6 @@
                }
        }
  
 -      usbd_add_dev_event(USB_EVENT_DEVICE_DETACH, dev);
        dev->bus->devices[dev->address] = NULL;
        up->device = NULL;
        usb_free_device(dev);
 
 --=-bcbp/cJjit19VlGihz+i--
 
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-usb
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to