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

From: Greg KH
Date: Wed Jun 16 2021 - 03:39:37 EST



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.

thanks,

greg k-h