* [PATCH] usb: gadget: Do not handle OS Descriptors config separately
@ 2023-02-13 23:45 Elson Roy Serrao
2023-02-16 11:40 ` Greg KH
0 siblings, 1 reply; 2+ messages in thread
From: Elson Roy Serrao @ 2023-02-13 23:45 UTC (permalink / raw)
To: gregkh, Thinh.Nguyen, balbi
Cc: linux-kernel, linux-usb, quic_wcheng, quic_jackp,
Elson Roy Serrao
Consider a multi-configuration composition in which the last
configuration uses OS descriptors. Since this configuration will
be sent first, the host may choose this config if it matches the
choosing criteria and ignore the user configured order of the
multi-config composition. Moreover linux based hosts do not re-order
the received configurations based on their indices but process them
in FIFO order. This may result in the host never choosing the user
desired configuration because of the re-order caused by sending the
OS descriptor config first. To avoid this, follow the user configured
order and do not handle OS descriptor config separately.
Signed-off-by: Elson Roy Serrao <quic_eserrao@quicinc.com>
---
drivers/usb/gadget/composite.c | 9 ---------
1 file changed, 9 deletions(-)
diff --git a/drivers/usb/gadget/composite.c b/drivers/usb/gadget/composite.c
index fa7dd6c..685003a 100644
--- a/drivers/usb/gadget/composite.c
+++ b/drivers/usb/gadget/composite.c
@@ -589,18 +589,9 @@ static int config_desc(struct usb_composite_dev *cdev, unsigned w_value)
w_value &= 0xff;
pos = &cdev->configs;
- c = cdev->os_desc_config;
- if (c)
- goto check_config;
-
while ((pos = pos->next) != &cdev->configs) {
c = list_entry(pos, typeof(*c), list);
- /* skip OS Descriptors config which is handled separately */
- if (c == cdev->os_desc_config)
- continue;
-
-check_config:
/* ignore configs that won't work at this speed */
switch (speed) {
case USB_SPEED_SUPER_PLUS:
--
2.7.4
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH] usb: gadget: Do not handle OS Descriptors config separately
2023-02-13 23:45 [PATCH] usb: gadget: Do not handle OS Descriptors config separately Elson Roy Serrao
@ 2023-02-16 11:40 ` Greg KH
0 siblings, 0 replies; 2+ messages in thread
From: Greg KH @ 2023-02-16 11:40 UTC (permalink / raw)
To: Elson Roy Serrao
Cc: Thinh.Nguyen, balbi, linux-kernel, linux-usb, quic_wcheng,
quic_jackp
On Mon, Feb 13, 2023 at 03:45:25PM -0800, Elson Roy Serrao wrote:
> Consider a multi-configuration composition in which the last
> configuration uses OS descriptors. Since this configuration will
> be sent first, the host may choose this config if it matches the
> choosing criteria and ignore the user configured order of the
> multi-config composition.
That is up to the host, so why is this an issue?
> Moreover linux based hosts do not re-order
> the received configurations based on their indices but process them
> in FIFO order.
s/linux/Linux/
> This may result in the host never choosing the user
> desired configuration because of the re-order caused by sending the
> OS descriptor config first. To avoid this, follow the user configured
> order and do not handle OS descriptor config separately.
I do not understand, what reordering is happening, and by whom?
>
> Signed-off-by: Elson Roy Serrao <quic_eserrao@quicinc.com>
What commit does this fix?
> ---
> drivers/usb/gadget/composite.c | 9 ---------
> 1 file changed, 9 deletions(-)
>
> diff --git a/drivers/usb/gadget/composite.c b/drivers/usb/gadget/composite.c
> index fa7dd6c..685003a 100644
> --- a/drivers/usb/gadget/composite.c
> +++ b/drivers/usb/gadget/composite.c
> @@ -589,18 +589,9 @@ static int config_desc(struct usb_composite_dev *cdev, unsigned w_value)
> w_value &= 0xff;
>
> pos = &cdev->configs;
> - c = cdev->os_desc_config;
> - if (c)
> - goto check_config;
> -
> while ((pos = pos->next) != &cdev->configs) {
> c = list_entry(pos, typeof(*c), list);
>
> - /* skip OS Descriptors config which is handled separately */
> - if (c == cdev->os_desc_config)
> - continue;
> -
> -check_config:
This feels wrong, are you sure that this code isn't here for a reason?
How did you test this?
thanks,
greg k-h
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2023-02-16 11:40 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-02-13 23:45 [PATCH] usb: gadget: Do not handle OS Descriptors config separately Elson Roy Serrao
2023-02-16 11:40 ` Greg KH
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).