On Wed, 11 Feb 2015, Dave Mielke wrote: > [quoted lines by Peter Stuge on 2015/02/11 at 15:57 +0100] > > >I would expect ioctl(fd, IOCTL_USBFS_REAPURBNDELAY, &urb) to either > >return -1 with errno = ENODEV, or to return 0 with urb->status = ESHUTDOWN. > > I just reverified. It's definitely returning -1 with EAGAIN. That indicates the device is connected and the URB is still in progress. You can't reap it because it hasn't completed. The signal you received must have referred to a different URB. > >What happens if you ioctl(fd, IOCTL_USBFS_DISCARDURB, ) instead of REAP? > > If I give it the address of the urb I'm expecting, it returns 0, and then the > non-blocking reap changes to returning -1 with ENOENT. Because when you cancel the URB, it completes. Alan Stern -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html