* Felipe Balbi <[email protected]> [171109 11:01]:
> usb_control_msg() will return the amount of bytes transferred, if that
> amount matches what we wanted to transfer, we need to reset 'ret' to 0
> from usb_get_status().

Thanks that fixes the issue I was seeing:

Tested-by: Tony Lindgren <[email protected]>


> Fixes: 2e43f0fe379c ("usb: core: add a 'type' parameter to usb_get_status()")
> Reported-by: Tony Lindgren <[email protected]>
> Signed-off-by: Felipe Balbi <[email protected]>
> ---
>  drivers/usb/core/message.c | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/drivers/usb/core/message.c b/drivers/usb/core/message.c
> index 0cdc463c9509..c15fbf76f8f7 100644
> --- a/drivers/usb/core/message.c
> +++ b/drivers/usb/core/message.c
> @@ -975,6 +975,7 @@ int usb_get_status(struct usb_device *dev, int recip, int 
> type, int target,
>               }
>  
>               *(u32 *) data = le32_to_cpu(*(__le32 *) status);
> +             ret = 0;
>               break;
>       case 2:
>               if (type != USB_STATUS_TYPE_STANDARD) {
> @@ -983,6 +984,7 @@ int usb_get_status(struct usb_device *dev, int recip, int 
> type, int target,
>               }
>  
>               *(u16 *) data = le16_to_cpu(*(__le16 *) status);
> +             ret = 0;
>               break;
>       default:
>               ret = -EIO;
> -- 
> 2.14.2.642.g20fed7cad4
> 
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to