Hi Xenia,
  thank you. I tested this patch on 3.11 kernel and the messages don't appear 
anymore
upon LPM-capable device disconnect (tested with ASMedia AS2105 devices).
Not much to show here, there is just no error/warning related to LPM
while handling these devices.

Probably better test is with Prolific-based device for which I get during 
connect:
[  999.906164] usb 4-2.1: new SuperSpeed USB device number 20 using xhci_hcd
[  999.928475] usb 4-2.1: New USB device found, idVendor=067b, idProduct=2773
[  999.928488] usb 4-2.1: New USB device strings: Mfr=1, Product=2, 
SerialNumber=3
[  999.928495] usb 4-2.1: Product: USB-SATA Bridge
[  999.928501] usb 4-2.1: Manufacturer: Prolific Technology Inc.
[  999.928506] usb 4-2.1: SerialNumber: PROLIFICMP000000007
[  999.929633] usb 4-2.1: Set SEL for device-initiated U1 failed.
[  999.930008] usb 4-2.1: Set SEL for device-initiated U2 failed.
[  999.930114] usb-storage 4-2.1:1.0: USB Mass Storage device detected
[  999.930178] scsi22 : usb-storage 4-2.1:1.0
[  999.930804] usb 4-2.1: Set SEL for device-initiated U1 failed.
[  999.931681] usb 4-2.1: Set SEL for device-initiated U2 failed.

and during disconnect kernel is also quiet and doesn't complain anymore about 
the
LPM of already disconnected device:
[ 1582.039612] usb 4-2.1: USB disconnect, device number 20

  I think your patch works correctly and has shutdown the bogus/annoying 
message. ;-)
Thank you.
Martin


Xenia Ragiadakou wrote:
> Set SEL control urbs cannot be sent to a device in unconfigured state.
> This patch adds a check in usb_req_set_sel() to ensure the usb device's
> state is USB_STATE_CONFIGURED.
> 
> Signed-off-by: Xenia Ragiadakou <burzalod...@gmail.com>
> Reported-by: Martin MOKREJS <mmokr...@gmail.com>
> Suggested-by: Sarah Sharp <sarah.a.sh...@linux.intel.com>
> ---
> 
> Differences from v2:
> 
> -push the check on device's state down to usb_req_set_sel()
> -check only that the device is in configured state
> -update commit title and changelog
> 
>  drivers/usb/core/hub.c | 3 +++
>  1 file changed, 3 insertions(+)
> 
> diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c
> index fe8d95d..cc468f8 100644
> --- a/drivers/usb/core/hub.c
> +++ b/drivers/usb/core/hub.c
> @@ -3424,6 +3424,9 @@ static int usb_req_set_sel(struct usb_device *udev, 
> enum usb3_link_state state)
>       unsigned long long u2_pel;
>       int ret;
>  
> +     if (udev->state != USB_STATE_CONFIGURED)
> +             return 0;
> +
>       /* Convert SEL and PEL stored in ns to us */
>       u1_sel = DIV_ROUND_UP(udev->u1_params.sel, 1000);
>       u1_pel = DIV_ROUND_UP(udev->u1_params.pel, 1000);
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to