lkml.org 
[lkml]   [2018]   [Oct]   [8]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.4 044/113] serial: cpm_uart: return immediately from console poll
    Date
    4.4-stable review patch.  If anyone has any objections, please let me know.

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

    From: Christophe Leroy <christophe.leroy@c-s.fr>

    commit be28c1e3ca29887e207f0cbcd294cefe5074bab6 upstream.

    kgdb expects poll function to return immediately and
    returning NO_POLL_CHAR when no character is available.

    Fixes: f5316b4aea024 ("kgdb,8250,pl011: Return immediately from console poll")
    Cc: Jason Wessel <jason.wessel@windriver.com>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Christophe Leroy <christophe.leroy@c-s.fr>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    drivers/tty/serial/cpm_uart/cpm_uart_core.c | 10 +++++++---
    1 file changed, 7 insertions(+), 3 deletions(-)

    --- a/drivers/tty/serial/cpm_uart/cpm_uart_core.c
    +++ b/drivers/tty/serial/cpm_uart/cpm_uart_core.c
    @@ -1068,8 +1068,8 @@ static int poll_wait_key(char *obuf, str
    /* Get the address of the host memory buffer.
    */
    bdp = pinfo->rx_cur;
    - while (bdp->cbd_sc & BD_SC_EMPTY)
    - ;
    + if (bdp->cbd_sc & BD_SC_EMPTY)
    + return NO_POLL_CHAR;

    /* If the buffer address is in the CPM DPRAM, don't
    * convert it.
    @@ -1104,7 +1104,11 @@ static int cpm_get_poll_char(struct uart
    poll_chars = 0;
    }
    if (poll_chars <= 0) {
    - poll_chars = poll_wait_key(poll_buf, pinfo);
    + int ret = poll_wait_key(poll_buf, pinfo);
    +
    + if (ret == NO_POLL_CHAR)
    + return ret;
    + poll_chars = ret;
    pollp = poll_buf;
    }
    poll_chars--;

    \
     
     \ /
      Last update: 2018-10-08 21:20    [W:3.047 / U:0.112 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site