[PATCH v2] tty: n_gsm: delete SABM command frame as requester

From: Zhenguo Zhao
Date: Thu Jul 01 2021 - 07:27:40 EST


From: Zhenguo Zhao <Zhenguo.Zhao1@xxxxxxxxxx>

as initiator,it need to send SABM command ,as requester,there is
no need to send the SABM control frame,it will cause redundant data.

Signed-off-by: Zhenguo Zhao <Zhenguo.Zhao1@xxxxxxxxxx>
---
drivers/tty/n_gsm.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/drivers/tty/n_gsm.c b/drivers/tty/n_gsm.c
index 5fea02c..41a6501 100644
--- a/drivers/tty/n_gsm.c
+++ b/drivers/tty/n_gsm.c
@@ -2997,6 +2997,7 @@ static int gsmtty_open(struct tty_struct *tty, struct file *filp)
{
struct gsm_dlci *dlci = tty->driver_data;
struct tty_port *port = &dlci->port;
+ struct gsm_mux *gsm = dlci->gsm;

port->count++;
tty_port_tty_set(port, tty);
@@ -3005,8 +3006,9 @@ static int gsmtty_open(struct tty_struct *tty, struct file *filp)
/* We could in theory open and close before we wait - eg if we get
a DM straight back. This is ok as that will have caused a hangup */
tty_port_set_initialized(port, 1);
- /* Start sending off SABM messages */
- gsm_dlci_begin_open(dlci);
+ /* Start sending off SABM messages for initiator */
+ if (gsm->initiator)
+ gsm_dlci_begin_open(dlci);
/* And wait for virtual carrier */
return tty_port_block_til_ready(port, tty, filp);
}
--
1.9.1