lkml.org 
[lkml]   [2022]   [Aug]   [16]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.19 0945/1157] tty: n_gsm: fix flow control handling in tx path
    Date
    From: Daniel Starke <daniel.starke@siemens.com>

    [ Upstream commit 59ff0680ecbfec742b1e0381e7cc46b41eb06647 ]

    The current implementation constipates all transmission paths during flow
    control except for flow control frames. However, these may not be located
    at the beginning of the transmission queue of the control channel.
    Ensure that flow control frames in the transmission queue for the control
    channel are always handled even if constipated by skipping through other
    messages.

    Fixes: 0af021678d5d ("tty: n_gsm: fix deadlock and link starvation in outgoing data path")
    Signed-off-by: Daniel Starke <daniel.starke@siemens.com>
    Link: https://lore.kernel.org/r/20220707113223.3685-3-daniel.starke@siemens.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/tty/n_gsm.c | 2 +-
    1 file changed, 1 insertion(+), 1 deletion(-)

    diff --git a/drivers/tty/n_gsm.c b/drivers/tty/n_gsm.c
    index 90060018928f..51447ccccbab 100644
    --- a/drivers/tty/n_gsm.c
    +++ b/drivers/tty/n_gsm.c
    @@ -891,7 +891,7 @@ static int gsm_data_kick(struct gsm_mux *gsm)
    /* Serialize control messages and control channel messages first */
    list_for_each_entry_safe(msg, nmsg, &gsm->tx_ctrl_list, list) {
    if (gsm->constipated && !gsm_is_flow_ctrl_msg(msg))
    - return -EAGAIN;
    + continue;
    ret = gsm_send_packet(gsm, msg);
    switch (ret) {
    case -ENOSPC:
    --
    2.35.1


    \
     
     \ /
      Last update: 2022-08-16 06:47    [W:4.034 / U:0.012 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site