lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <95224646-6dd7-874e-517c-b106b474e487@codeaurora.org>
Date:   Fri, 2 Jul 2021 01:00:26 -0700
From:   Wesley Cheng <wcheng@...eaurora.org>
To:     Greg KH <gregkh@...uxfoundation.org>
Cc:     robh+dt@...nel.org, agross@...nel.org, bjorn.andersson@...aro.org,
        balbi@...nel.org, linux-usb@...r.kernel.org,
        devicetree@...r.kernel.org, linux-kernel@...r.kernel.org,
        linux-arm-msm@...r.kernel.org, jackp@...eaurora.org,
        fntoth@...il.com
Subject: Re: [PATCH v11 1/5] usb: gadget: udc: core: Introduce check_config to
 verify USB configuration



On 7/1/2021 10:00 PM, Greg KH wrote:
> On Wed, Jun 30, 2021 at 02:00:38AM -0700, Wesley Cheng wrote:
>> Some UDCs may have constraints on how many high bandwidth endpoints it can
>> support in a certain configuration.  This API allows for the composite
>> driver to pass down the total number of endpoints to the UDC so it can verify
>> it has the required resources to support the configuration.
>>
>> Signed-off-by: Wesley Cheng <wcheng@...eaurora.org>
>> ---
>>  drivers/usb/gadget/udc/core.c | 25 +++++++++++++++++++++++++
>>  include/linux/usb/gadget.h    |  4 ++++
>>  2 files changed, 29 insertions(+)
>>
>> diff --git a/drivers/usb/gadget/udc/core.c b/drivers/usb/gadget/udc/core.c
>> index b7f0b1e..f1f44a6 100644
>> --- a/drivers/usb/gadget/udc/core.c
>> +++ b/drivers/usb/gadget/udc/core.c
>> @@ -1003,6 +1003,31 @@ int usb_gadget_ep_match_desc(struct usb_gadget *gadget,
>>  }
>>  EXPORT_SYMBOL_GPL(usb_gadget_ep_match_desc);
>>  
>> +/**
>> + * usb_gadget_check_config - checks if the UDC can support the number of eps

Hi Greg,

Thanks for the feedback.
> 
> "eps"?  What is that?
>

Fixed to "endpoints"

>> + * @gadget: controller to check the USB configuration
>> + * @ep_map: bitmap of endpoints being requested by a USB configuration
> 
> There is no such option in this function, did you run 'make htmldocs'
> and see that this adds a warning?
> 
Removed the ep_map comment, as we've removed it from the arguments.

>> + *
>> + * Ensure that a UDC is able to support the number of endpoints within a USB
>> + * configuration, and that there are no resource limitations to support all
>> + * requested eps.
>> + *
>> + * Returns zero on success, else a negative errno.
>> + */
>> +int usb_gadget_check_config(struct usb_gadget *gadget)
>> +{
>> +	int ret = 0;
>> +
>> +	if (!gadget->ops->check_config)
>> +		goto out;
>> +
>> +	ret = gadget->ops->check_config(gadget);
>> +
>> +out:
>> +	return ret;
>> +}
>> +EXPORT_SYMBOL_GPL(usb_gadget_check_config);
> 
> This can be written in the much simpler form:
> {
> 	if (gadget->ops->check_config)
> 		return gadget->ops->check_config(gadget);
> 	return 0;
> }
>
thanks for this suggestion.

> But where are the endpoints that need to be checked???
> 
> How is this working?
> 
The USB gadget will have ep_list, do we'll be looping through the
endpoints that have been claimed to get the number of IN eps being used
by a particular configuration.

Thanks
Wesley Cheng

-- 
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
a Linux Foundation Collaborative Project

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ