Re: [PATCH 3/3] usb: gadgetfs: protect descriptor delegation with Kconfig

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

 



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


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

  Powered by Linux