[PATCH] tty: n_gsm: Fix CR bit value when initiator=0

From: Zhenguo Zhao
Date: Tue Jun 15 2021 - 22:58:14 EST


From: Zhenguo Zhao <zhenguo.zhao1@xxxxxxxxxx>

When set initiator=0,switch to Responder,gsmld received dlci SABM/DISC
frame,CR bit should be 0 by calculation.

receive DLC0 SABM CMD:
[69.740263] c1 gsmld_receive: 00000000: f9 03 3f 01 1c f9
[69.893247] c1 gsm_queue cr:1
[69.897629] c1 <-- 0) C: SABM(P)
[69.907516] c1 gsm_queue cr:0

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