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

From: Jiri Slaby
Date: Wed Jun 16 2021 - 03:46:31 EST


On 16. 06. 21, 9:39, Greg KH wrote:

A: http://en.wikipedia.org/wiki/Top_post
Q: Were do I find info about this thing called top-posting?
A: Because it messes up the order in which people normally read text.
Q: Why is top-posting such a bad thing?
A: Top-posting.
Q: What is the most annoying thing in e-mail?

A: No.
Q: Should I include quotations after my reply?

http://daringfireball.net/2007/07/on_top

On Wed, Jun 16, 2021 at 03:29:11PM +0800, 赵振国 wrote:
Dear gregkh

1: Documentation/driver-api/serial/n_gsm.rst

The text introduces the config of master ( c.initiator = 1), but the
config of as responder is different.
when set gsm->initiator=0 by GSMIOC_SETCONF ,ngsm driver should be
responder(slaver)

config:
c.initiator = 0; // set initiator=0,ngsm as responder
ioctl(fd, GSMIOC_SETCONF, &c);

2: if master side send SABM/DISC frame data by uart dev
DLC0 control data frame:f9 03 3f 01 1c f9
kernel log: gsmld_receive: 00000000: f9 03 3f 01 1c f9

{
cr = gsm->address & 1; /* C/R bit */
//CR value=1

gsm_print_packet("<--", address, cr, gsm->control, gsm->buf, gsm->len);

cr ^= 1 - gsm->initiator; /* Flip so 1 always means command */
//when gsm->initiator is 0, CR value=0 by "^=" calculation
dlci = gsm->dlci[address];

switch (gsm->control) {
case SABM|PF:
if (cr == 0)
goto invalid; //if CR value=0,ngsm will goto
invalid,but the dlc0 control frame data is right,if we can't modify
,ngsm can't send UA response data
}

I am sorry, but I really do not understand what you are saying here.
Please resubmit your patch with an updated changelog that explains why
this change is needed and what it does.

And why it was able to work until now. I.e. isn't the Documentation wrong?

thanks,
--
js
suse labs