[PATCH v2] tty: n_gsm: CR bit value should be 0 when config "initiator=0"

From: Zhenguo Zhao
Date: Wed Jun 16 2021 - 07:54:31 EST


From: Zhenguo Zhao <zhenguo.zhao1@xxxxxxxxxx>

config "initiator=0",gsmld will receives dlci SABM/DISC control command
frame,as slaver,the CR bit value check should be 1.

if check "cr == 0",it will goto invalid,so it can't send UA response
frame and open slaver dlci.

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

diff --git a/drivers/tty/n_gsm.c b/drivers/tty/n_gsm.c
index 5fea02c..becca2c 100644
--- a/drivers/tty/n_gsm.c
+++ b/drivers/tty/n_gsm.c
@@ -1779,7 +1779,7 @@ static void gsm_queue(struct gsm_mux *gsm)

switch (gsm->control) {
case SABM|PF:
- if (cr == 0)
+ if (cr == 1)
goto invalid;
if (dlci == NULL)
dlci = gsm_dlci_alloc(gsm, address);
@@ -1793,7 +1793,7 @@ static void gsm_queue(struct gsm_mux *gsm)
}
break;
case DISC|PF:
- if (cr == 0)
+ if (cr == 1)
goto invalid;
if (dlci == NULL || dlci->state == DLCI_CLOSED) {
gsm_response(gsm, address, DM);
--
1.9.1