[lkml]   [2021]   [May]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    Patch in this message
    Subject[PATCH 5.10 213/530] staging: greybus: uart: fix unprivileged TIOCCSERIAL
    From: Johan Hovold <>

    [ Upstream commit 60c6b305c11b5fd167ce5e2ce42f3a9098c388f0 ]

    TIOCSSERIAL is a horrid, underspecified, legacy interface which for most
    serial devices is only useful for setting the close_delay and
    closing_wait parameters.

    A non-privileged user has only ever been able to set the since long
    deprecated ASYNC_SPD flags and trying to change any other *supported*
    feature should result in -EPERM being returned. Setting the current
    values for any supported features should return success.

    Fix the greybus implementation which instead indicated that the
    TIOCSSERIAL ioctl was not even implemented when a non-privileged user
    set the current values.

    Fixes: e68453ed28c5 ("greybus: uart-gb: now builds, more framework added")
    Signed-off-by: Johan Hovold <>
    Signed-off-by: Greg Kroah-Hartman <>
    Signed-off-by: Sasha Levin <>
    drivers/staging/greybus/uart.c | 2 --
    1 file changed, 2 deletions(-)

    diff --git a/drivers/staging/greybus/uart.c b/drivers/staging/greybus/uart.c
    index 29846dc1e1bf..a520f7f213db 100644
    --- a/drivers/staging/greybus/uart.c
    +++ b/drivers/staging/greybus/uart.c
    @@ -641,8 +641,6 @@ static int set_serial_info(struct tty_struct *tty,
    if ((close_delay != gb_tty->port.close_delay) ||
    (closing_wait != gb_tty->port.closing_wait))
    retval = -EPERM;
    - else
    - retval = -EOPNOTSUPP;
    } else {
    gb_tty->port.close_delay = close_delay;
    gb_tty->port.closing_wait = closing_wait;

     \ /
      Last update: 2021-05-12 18:02    [W:2.506 / U:0.096 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site