aboutsummaryrefslogtreecommitdiffstats
path: root/include/uapi
diff options
context:
space:
mode:
authorAlan Stern <stern@rowland.harvard.edu>2015-01-29 11:29:13 -0500
committerGreg Kroah-Hartman <greg@kroah.com>2015-01-31 12:05:06 -0500
commit3f2cee73b650921b2e214bf487b2061a1c266504 (patch)
treed1dddbfd38a52fc0b66b7fca36dc8ad8efb671ca /include/uapi
parent17136d4984b37d2a9acb67e1da1a3e95e3fed918 (diff)
USB: usbfs: allow URBs to be reaped after disconnection
The usbfs API has a peculiar hole: Users are not allowed to reap their URBs after the device has been disconnected. There doesn't seem to be any good reason for this; it is an ad-hoc inconsistency. The patch allows users to issue the USBDEVFS_REAPURB and USBDEVFS_REAPURBNDELAY ioctls (together with their 32-bit counterparts on 64-bit systems) even after the device is gone. If no URBs are pending for a disconnected device then the ioctls will return -ENODEV rather than -EAGAIN, because obviously no new URBs will ever be able to complete. The patch also adds a new capability flag for USBDEVFS_GET_CAPABILITIES to indicate that the reap-after-disconnect feature is supported. Signed-off-by: Alan Stern <stern@rowland.harvard.edu> Tested-by: Chris Dickens <christopher.a.dickens@gmail.com> Acked-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
Diffstat (limited to 'include/uapi')
-rw-r--r--include/uapi/linux/usbdevice_fs.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/include/uapi/linux/usbdevice_fs.h b/include/uapi/linux/usbdevice_fs.h
index abe5f4bd4d82..019ba1e0799a 100644
--- a/include/uapi/linux/usbdevice_fs.h
+++ b/include/uapi/linux/usbdevice_fs.h
@@ -128,11 +128,12 @@ struct usbdevfs_hub_portinfo {
128 char port [127]; /* e.g. port 3 connects to device 27 */ 128 char port [127]; /* e.g. port 3 connects to device 27 */
129}; 129};
130 130
131/* Device capability flags */ 131/* System and bus capability flags */
132#define USBDEVFS_CAP_ZERO_PACKET 0x01 132#define USBDEVFS_CAP_ZERO_PACKET 0x01
133#define USBDEVFS_CAP_BULK_CONTINUATION 0x02 133#define USBDEVFS_CAP_BULK_CONTINUATION 0x02
134#define USBDEVFS_CAP_NO_PACKET_SIZE_LIM 0x04 134#define USBDEVFS_CAP_NO_PACKET_SIZE_LIM 0x04
135#define USBDEVFS_CAP_BULK_SCATTER_GATHER 0x08 135#define USBDEVFS_CAP_BULK_SCATTER_GATHER 0x08
136#define USBDEVFS_CAP_REAP_AFTER_DISCONNECT 0x10
136 137
137/* USBDEVFS_DISCONNECT_CLAIM flags & struct */ 138/* USBDEVFS_DISCONNECT_CLAIM flags & struct */
138 139