On Mon, 2 Jul 2012, Hans de Goede wrote: > There are a few (new) usbdevfs capabilities which an application cannot > discover in any other way then checking the kernel version. There are 3 > problems with this: > 1) It is just not very pretty > 2) Given the tendency of enterprise distros to backport stuff it is not > reliable > 3) Some of these features turn out to not work with certain host controllers, > making depending on them based on the kernel version not a good idea > > This patch besides adding the new ioctl also adds flags the following existing > capabilities: > > USBDEVFS_CAP_ZERO_PACKET, available since 2.6.31 > USBDEVFS_CAP_BULK_CONTINUATION, available since 2.6.32, except for XHCI > USBDEVFS_CAP_NO_PACKET_SIZE_LIM, available since 3.3 > > Signed-off-by: Hans de Goede <hdegoede@xxxxxxxxxx> Whoops! Just one little problem: > diff --git a/drivers/usb/core/devio.c b/drivers/usb/core/devio.c > index 5c15acd..3807ea6 100644 > --- a/drivers/usb/core/devio.c > +++ b/drivers/usb/core/devio.c > @@ -1818,6 +1818,19 @@ static int proc_release_port(struct dev_state *ps, void __user *arg) > return usb_hub_release_port(ps->dev, portnum, ps); > } > > +static int proc_get_capabilities(struct dev_state *ps, void __user *arg) > +{ > + __u32 caps; > + > + caps = USBDEVFS_CAP_ZERO_PACKET | USBDEVFS_CAP_NO_PACKET_SIZE_LIM; > + caps |= USBDEVFS_CAP_BULK_CONTINUATION; > + > + if (put_user(caps, (__u32 __user *)arg)) > + return -EFAULT; > + > + return caps; > +} This should return 0, not caps. 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