Binyamin Sharet <bsharet@xxxxxxxxx> writes: > On 09/07/2016 03:40 PM, Felipe Balbi wrote: >> Binyamin Sharet <bsharet@xxxxxxxxx> writes: >> >>> Added USB_GADGETFS_ALLOW_DELEGATE_DESCRIPTORS to Kconfig, this >>> option is available under USB_GADGETFS and requires EXPERT. >>> Enabling this option will not change the default behavior of >>> GadgetFS, but will allow a user to enable descriptor delegation >>> using ioctls. >>> --- >>> drivers/usb/gadget/legacy/Kconfig | 12 ++++++++++++ >>> drivers/usb/gadget/legacy/inode.c | 12 ++++++++++-- >>> 2 files changed, 22 insertions(+), 2 deletions(-) >>> >>> diff --git a/drivers/usb/gadget/legacy/Kconfig >>> b/drivers/usb/gadget/legacy/Kconfig >>> index 0b36878..c062384 100644 >>> --- a/drivers/usb/gadget/legacy/Kconfig >>> +++ b/drivers/usb/gadget/legacy/Kconfig >>> @@ -184,6 +184,18 @@ config USB_GADGETFS >>> Say "y" to link the driver statically, or "m" to build a >>> dynamically linked module called "gadgetfs". >>> >>> +config USB_GADGETFS_ALLOW_DELEGATE_DESCRIPTORS >>> + bool "Delegate get descriptor requests to user" if EXPERT >>> + depends on USB_GADGETFS >> why not: >> >> bool " Delegate all requests to user" >> depends on USB_GADGETFS && EXPERT >> >> ? > I have done it this way so it will not be displayed unless EXPERT > is enabled. if it depends on EXPERT it won't show ;-) >>> diff --git a/drivers/usb/gadget/legacy/inode.c >>> b/drivers/usb/gadget/legacy/inode.c >>> index f8a3e75..9a62584 100644 >>> --- a/drivers/usb/gadget/legacy/inode.c >>> +++ b/drivers/usb/gadget/legacy/inode.c >>> @@ -178,9 +178,13 @@ static struct dev_data *dev_new (void) >>> spin_lock_init (&dev->lock); >>> INIT_LIST_HEAD (&dev->epfiles); >>> init_waitqueue_head (&dev->wait); >>> + >>> +#ifdef CONFIG_USB_GADGETFS_ALLOW_DELEGATE_DESCRIPTORS >>> feature_set(&dev->supported_features, >>> GADGETFS_FEATURE_DELEGATE_DESCRIPTORS); >>> - return dev; >>> +#endif >> feature_set shouldn't be here until $subject is merged. >> >>> @@ -1414,10 +1418,14 @@ gadgetfs_setup (struct usb_gadget *gadget, const >>> struct usb_ctrlrequest *ctrl) >>> case USB_REQ_GET_DESCRIPTOR: >>> if (ctrl->bRequestType != USB_DIR_IN) >>> goto unrecognized; >>> + >>> +#ifdef CONFIG_USB_GADGETFS_ALLOW_DELEGATE_DESCRIPTORS >>> if (is_feature_set(&dev->enabled_features, >>> GADGETFS_FEATURE_DELEGATE_DESCRIPTORS)) >> this shouldn't be here until $subject. >> > What do you mean by "until $subject is merged"? > Should this patch be submitted only in the future? no, no :-) I mean that the conditional already existed. You're only wrapping it with the ifdef. This means we create a point in the history where features are enabled without ALLOW_DELEGATE_DESCRIPTORS. We don't want that, so move feature_set() and if (is_feature_set()) usage to $this patch. -- balbi
Attachment:
signature.asc
Description: PGP signature