Re: Unable to reap urb after receiving signal using usbfs.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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




[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux