lkml.org 
[lkml]   [2017]   [May]   [23]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.4 042/103] USB: serial: ftdi_sio: fix setting latency for unprivileged users
    Date
    4.4-stable review patch.  If anyone has any objections, please let me know.

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

    From: Anthony Mallet <anthony.mallet@laas.fr>

    commit bb246681b3ed0967489a7401ad528c1aaa1a4c2e upstream.

    Commit 557aaa7ffab6 ("ft232: support the ASYNC_LOW_LATENCY
    flag") enables unprivileged users to set the FTDI latency timer,
    but there was a logic flaw that skipped sending the corresponding
    USB control message to the device.

    Specifically, the device latency timer would not be updated until next
    open, something which was later also inadvertently broken by commit
    c19db4c9e49a ("USB: ftdi_sio: set device latency timeout at port
    probe").

    A recent commit c6dce2626606 ("USB: serial: ftdi_sio: fix extreme
    low-latency setting") disabled the low-latency mode by default so we now
    need this fix to allow unprivileged users to again enable it.

    Signed-off-by: Anthony Mallet <anthony.mallet@laas.fr>
    [johan: amend commit message]
    Fixes: 557aaa7ffab6 ("ft232: support the ASYNC_LOW_LATENCY flag")
    Fixes: c19db4c9e49a ("USB: ftdi_sio: set device latency timeout at port probe").
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    drivers/usb/serial/ftdi_sio.c | 2 +-
    1 file changed, 1 insertion(+), 1 deletion(-)

    --- a/drivers/usb/serial/ftdi_sio.c
    +++ b/drivers/usb/serial/ftdi_sio.c
    @@ -1508,9 +1508,9 @@ static int set_serial_info(struct tty_st
    (new_serial.flags & ASYNC_FLAGS));
    priv->custom_divisor = new_serial.custom_divisor;

    +check_and_exit:
    write_latency_timer(port);

    -check_and_exit:
    if ((old_priv.flags & ASYNC_SPD_MASK) !=
    (priv->flags & ASYNC_SPD_MASK)) {
    if ((priv->flags & ASYNC_SPD_MASK) == ASYNC_SPD_HI)

    \
     
     \ /
      Last update: 2017-05-23 22:50    [W:4.130 / U:0.044 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site