lkml.org 
[lkml]   [2018]   [Jul]   [1]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.14 015/157] usb: do not reset if a low-speed or full-speed device timed out
    Date
    4.14-stable review patch.  If anyone has any objections, please let me know.

    ------------------

    From: Maxim Moseychuk <franchesko.salias.hudro.pedros@gmail.com>

    commit 6e01827ed93947895680fbdad68c072a0f4e2450 upstream.

    Some low-speed and full-speed devices (for example, bluetooth)
    do not have time to initialize. For them, ETIMEDOUT is a valid error.
    We need to give them another try. Otherwise, they will
    never be initialized correctly and in dmesg will be messages
    "Bluetooth: hci0 command 0x1002 tx timeout" or similars.

    Fixes: 264904ccc33c ("usb: retry reset if a device times out")
    Cc: stable <stable@vger.kernel.org>
    Signed-off-by: Maxim Moseychuk <franchesko.salias.hudro.pedros@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    drivers/usb/core/hub.c | 4 +++-
    1 file changed, 3 insertions(+), 1 deletion(-)

    --- a/drivers/usb/core/hub.c
    +++ b/drivers/usb/core/hub.c
    @@ -4519,7 +4519,9 @@ hub_port_init(struct usb_hub *hub, struc
    * reset. But only on the first attempt,
    * lest we get into a time out/reset loop
    */
    - if (r == 0 || (r == -ETIMEDOUT && retries == 0))
    + if (r == 0 || (r == -ETIMEDOUT &&
    + retries == 0 &&
    + udev->speed > USB_SPEED_FULL))
    break;
    }
    udev->descriptor.bMaxPacketSize0 =

    \
     
     \ /
      Last update: 2018-07-01 20:03    [W:4.306 / U:0.452 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site