• D
    tty: n_gsm: fix software flow control handling · f4f7d632
    Daniel Starke 提交于
    n_gsm is based on the 3GPP 07.010 and its newer version is the 3GPP 27.010.
    See https://portal.3gpp.org/desktopmodules/Specifications/SpecificationDetails.aspx?specificationId=1516
    The changes from 07.010 to 27.010 are non-functional. Therefore, I refer to
    the newer 27.010 here. Chapter 5.4.8.1 states that XON/XOFF characters
    shall be used instead of Fcon/Fcoff command in advanced option mode to
    handle flow control. Chapter 5.4.8.2 describes how XON/XOFF characters
    shall be handled. Basic option mode only used Fcon/Fcoff commands and no
    XON/XOFF characters. These are treated as data bytes here.
    The current implementation uses the gsm_mux field 'constipated' to handle
    flow control from the remote peer and the gsm_dlci field 'constipated' to
    handle flow control from each DLCI. The later is unrelated to this patch.
    The gsm_mux field is correctly set for Fcon/Fcoff commands in
    gsm_control_message(). However, the same is not true for XON/XOFF
    characters in gsm1_receive().
    Disable software flow control handling in the tty to allow explicit
    handling by n_gsm.
    Add the missing handling in advanced option mode for gsm_mux in
    gsm1_receive() to comply with the standard.
    
    This patch depends on the following commit:
    Commit 8838b2af ("tty: n_gsm: fix SW flow control encoding/handling")
    
    Fixes: e1eaea46 ("tty: n_gsm line discipline")
    Cc: stable@vger.kernel.org
    Signed-off-by: NDaniel Starke <daniel.starke@siemens.com>
    Link: https://lore.kernel.org/r/20220422071025.5490-3-daniel.starke@siemens.comSigned-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    f4f7d632
n_gsm.c 83.4 KB