Patch "tty: n_gsm: Modify CR,PF bit when config requester" has been added to the 5.15-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    tty: n_gsm: Modify CR,PF bit when config requester

to the 5.15-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     tty-n_gsm-modify-cr-pf-bit-when-config-requester.patch
and it can be found in the queue-5.15 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit 2b325213c8a48eab25b91459eabb9e4ad3339b65
Author: Zhenguo Zhao <Zhenguo.Zhao1@xxxxxxxxxx>
Date:   Fri Aug 20 20:17:47 2021 +0800

    tty: n_gsm: Modify CR,PF bit when config requester
    
    [ Upstream commit cc0f42122a7e7a5ede9c5f2a41199128b8449eda ]
    
    When n_gsm config "initiator=0",as requester,gsmld receives dlci SABM/DISC
    control command frame,but send UA frame is error.
    
    Example:
    Gsmld receive dlc0 SABM frame "f9 03 3f 01 1c f9",now it sends UA
    frame "f9 01 63 01 a3 f9",CR and PF bit are 0,but it should be set
    1 from requster to initiator.
    
    Kernel test log as follows:
    
    Before modify
    
    [  271.732031] c1 gsmld_receive: 00000000: f9 03 3f 01 1c f9
    [  271.741719] c1 <-- 0) C: SABM(P)
    [  271.749483] c1 gsmld_output: 00000000: f9 01 63 01 a3 f9
    [  271.758337] c1 --> 0) R: UA(F)
    
    After modify
    
    [  261.233188] c0 gsmld_receive: 00000000: f9 03 3f 01 1c f9
    [  261.242767] c0 <-- 0) C: SABM(P)
    [  261.250497] c0 gsmld_output: 00000000: f9 03 73 01 d7 f9
    [  261.259759] c0 --> 0) C: UA(P)
    
    Signed-off-by: Zhenguo Zhao <Zhenguo.Zhao1@xxxxxxxxxx>
    Link: https://lore.kernel.org/r/1629461872-26965-3-git-send-email-zhenguo6858@xxxxxxxxx
    Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/tty/n_gsm.c b/drivers/tty/n_gsm.c
index 6734ef22c304..91ce8e6e889a 100644
--- a/drivers/tty/n_gsm.c
+++ b/drivers/tty/n_gsm.c
@@ -625,7 +625,7 @@ static void gsm_send(struct gsm_mux *gsm, int addr, int cr, int control)
 
 static inline void gsm_response(struct gsm_mux *gsm, int addr, int control)
 {
-	gsm_send(gsm, addr, 0, control);
+	gsm_send(gsm, addr, 1, control);
 }
 
 /**
@@ -1818,9 +1818,9 @@ static void gsm_queue(struct gsm_mux *gsm)
 		if (dlci == NULL)
 			return;
 		if (dlci->dead)
-			gsm_response(gsm, address, DM);
+			gsm_response(gsm, address, DM|PF);
 		else {
-			gsm_response(gsm, address, UA);
+			gsm_response(gsm, address, UA|PF);
 			gsm_dlci_open(dlci);
 		}
 		break;
@@ -1828,11 +1828,11 @@ static void gsm_queue(struct gsm_mux *gsm)
 		if (cr == 0)
 			goto invalid;
 		if (dlci == NULL || dlci->state == DLCI_CLOSED) {
-			gsm_response(gsm, address, DM);
+			gsm_response(gsm, address, DM|PF);
 			return;
 		}
 		/* Real close complete */
-		gsm_response(gsm, address, UA);
+		gsm_response(gsm, address, UA|PF);
 		gsm_dlci_close(dlci);
 		break;
 	case UA|PF:



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux